source: db/ddl-creation.sql@ 79a0317

main
Last change on this file since 79a0317 was 79a0317, checked in by stefan toskovski <stefantoska84@…>, 3 days ago

F4 Finalna Verzija

  • Property mode set to 100644
File size: 3.1 KB
RevLine 
[79a0317]1CREATE TABLE public.permissions (
2 id serial4 NOT NULL PRIMARY KEY,
3 "name" varchar(64) NOT NULL UNIQUE
4);
5CREATE TABLE public.roles (
6 id serial4 NOT NULL PRIMARY KEY,
7 "name" varchar(64) NOT NULL UNIQUE
8);
9CREATE TABLE public.users (
10 id serial4 NOT NULL PRIMARY KEY,
11 username varchar(64) NULL,
12 "password" text NULL,
13 email varchar(128) NULL,
14 created_at timestamp NULL,
15 last_login_at timestamp NULL,
16 profile_image_url text NULL,
17 oauth_provider varchar(64) NULL,
18 refresh_token text NULL,
19 access_token text NULL,
20 oauth_id varchar(255) NULL,
21 UNIQUE (email),
22 UNIQUE (username),
23 UNIQUE (oauth_id)
24);
25CREATE TABLE public.maps (
26 id serial4 NOT NULL PRIMARY KEY,
27 "name" varchar(64) NULL,
28 gmaps_url text NULL,
29 published_at timestamp NULL,
30 created_at timestamp NULL,
31 modified_at timestamp NULL,
32 image_url text NULL,
33 usr_id int4 NULL,
34 status varchar(16) NULL,
35 map_type varchar(64) NULL,
36 is_published bool DEFAULT false NULL,
37 FOREIGN KEY (usr_id) REFERENCES public.users(id) ON DELETE CASCADE
38);
39CREATE TABLE public.roles_permissions (
40 role_id int4 NOT NULL,
41 permission_id int4 NOT NULL,
42 PRIMARY KEY (role_id, permission_id),
43 FOREIGN KEY (permission_id) REFERENCES public.permissions(id) ON DELETE CASCADE,
44 FOREIGN KEY (role_id) REFERENCES public.roles(id) ON DELETE CASCADE
45);
46CREATE TABLE public.users_roles (
47 user_id int4 NOT NULL,
48 role_id int4 NOT NULL,
49 PRIMARY KEY (user_id, role_id),
50 FOREIGN KEY (role_id) REFERENCES public.roles(id) ON DELETE CASCADE,
51 FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE
52);
53CREATE TABLE public.favourites (
54 user_id int4 NOT NULL,
55 map_id int4 NOT NULL,
56 PRIMARY KEY (user_id, map_id),
57 FOREIGN KEY (map_id) REFERENCES public.maps(id) ON DELETE CASCADE,
58 FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE
59);
60CREATE TABLE public.floors (
61 num int4 NOT NULL,
62 map_id int4 NOT NULL,
63 map_data jsonb NULL,
64 PRIMARY KEY (map_id, num),
65 FOREIGN KEY (map_id) REFERENCES public.maps(id) ON DELETE CASCADE
66);
67CREATE TABLE public.room_types (
68 id serial4 NOT NULL PRIMARY KEY,
69 map_id int4 NULL,
70 "name" varchar(64) NULL,
71 UNIQUE (name, map_id),
72 FOREIGN KEY (map_id) REFERENCES public.maps(id) ON DELETE CASCADE
73);
74CREATE TABLE public.publish_form (
75 id serial4 NOT NULL PRIMARY KEY,
76 "name" varchar(64) NULL,
77 last_name varchar(64) NULL,
78 gmaps_url text NULL,
79 map_type varchar(64) NULL,
80 resolved bool DEFAULT false NULL,
81 user_id int4 NULL,
82 map_id int4 NULL,
83 FOREIGN KEY (map_id) REFERENCES public.maps(id) ON DELETE CASCADE,
84 FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE
85);
86CREATE TABLE public.reports (
87 id serial4 NOT NULL PRIMARY KEY,
88 user_id int4 NOT NULL,
89 subject varchar(255) NOT NULL,
90 "content" text NOT NULL,
91 created_at timestamp NOT NULL,
92 map_id int4 NULL,
93 FOREIGN KEY (map_id) REFERENCES public.maps(id) ON DELETE CASCADE,
94 FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE
95);
Note: See TracBrowser for help on using the repository browser.