1 | CREATE TABLE city (
|
---|
2 | CityID serial primary key,
|
---|
3 | CityName varchar(50) not null
|
---|
4 | );
|
---|
5 |
|
---|
6 | CREATE TABLE faculty (
|
---|
7 | FacultyID serial primary key,
|
---|
8 | FacultyName varchar(255) not null,
|
---|
9 | CityID integer references city(CityID)
|
---|
10 | );
|
---|
11 |
|
---|
12 | CREATE TABLE building (
|
---|
13 | BuildingID serial primary key,
|
---|
14 | CityID integer references city(CityID),
|
---|
15 | BuildingAddress varchar(255)
|
---|
16 | );
|
---|
17 |
|
---|
18 | CREATE TABLE appuser(
|
---|
19 | userid serial unique,
|
---|
20 | username varchar(30) not null,
|
---|
21 | password varchar(255),
|
---|
22 | email_address varchar(255),
|
---|
23 | ime varchar(255),
|
---|
24 | prezime varchar(255),
|
---|
25 | phone_number varchar(255)
|
---|
26 | );
|
---|
27 |
|
---|
28 | CREATE TABLE administrator (
|
---|
29 | AdminID integer primary key references appuser(UserID),
|
---|
30 | AdminRole varchar(255) not null
|
---|
31 | );
|
---|
32 |
|
---|
33 | CREATE TABLE apartment_owner (
|
---|
34 | OwnerID integer primary key references appuser(UserID)
|
---|
35 | );
|
---|
36 |
|
---|
37 | CREATE TABLE student (
|
---|
38 | StudentID integer not null primary key references appuser(UserID),
|
---|
39 | FacultyID integer not null references faculty(FacultyID),
|
---|
40 | Age integer,
|
---|
41 | Gender varchar(255)
|
---|
42 | );
|
---|
43 |
|
---|
44 | CREATE TABLE apartment (
|
---|
45 | ApartmentID serial primary key,
|
---|
46 | BuildingID integer references building(BuildingID) not null,
|
---|
47 | OwnerID integer references apartment_owner(OwnerID) not null,
|
---|
48 | ApartmentFloorAndRoomNumber varchar(255) not null,
|
---|
49 | ApartmentSize varchar(255) not null
|
---|
50 | );
|
---|
51 |
|
---|
52 | CREATE TABLE apartment_agreement (
|
---|
53 | AgreementID serial primary key,
|
---|
54 | ApartmentID integer not null references apartment(ApartmentID),
|
---|
55 | OwnerID integer not null references apartment_owner(OwnerID),
|
---|
56 | DateSigned date not null,
|
---|
57 | DateExpires date not null,
|
---|
58 | ApartmentRent integer not null
|
---|
59 | );
|
---|
60 |
|
---|
61 | CREATE TABLE post (
|
---|
62 | PostID serial primary key,
|
---|
63 | CityID integer references city(CityID),
|
---|
64 | NumberOfRoommates integer not null,
|
---|
65 | Price integer not null,
|
---|
66 | DatePosted date not null,
|
---|
67 | Description varchar(255)
|
---|
68 | );
|
---|
69 |
|
---|
70 | CREATE TABLE student_post (
|
---|
71 | StudentPostID integer primary key references post(PostID),
|
---|
72 | StudentID integer not null references student(StudentID)
|
---|
73 | );
|
---|
74 |
|
---|
75 | CREATE TABLE owner_post (
|
---|
76 | OwnerPostID integer not null primary key references post(PostID),
|
---|
77 | ApartmentID integer not null references apartment(ApartmentID),
|
---|
78 | OwnerID integer not null references apartment_owner(OwnerID)
|
---|
79 | );
|
---|
80 |
|
---|
81 | CREATE TABLE apartment_photos (
|
---|
82 | PostID integer references owner_post(OwnerPostID) primary key,
|
---|
83 | PhotosURL varchar(1000)
|
---|
84 | );
|
---|
85 |
|
---|
86 | CREATE TABLE moderates_posts_for (
|
---|
87 | CityID integer not null references city(CityID),
|
---|
88 | AdminID integer not null references administrator(AdminID),
|
---|
89 | primary key (CityID, AdminID)
|
---|
90 | );
|
---|
91 |
|
---|
92 | CREATE TABLE student_signs (
|
---|
93 | StudentID integer not null references student(StudentID),
|
---|
94 | AgreementID integer not null references apartment_agreement(AgreementID),
|
---|
95 | primary key (StudentID, AgreementID)
|
---|
96 | );
|
---|