36 lines
1.4 KiB
Plaintext
36 lines
1.4 KiB
Plaintext
CREATE TABLE "user" (
|
|
id uuid DEFAULT uuid_generate_v4(),
|
|
name VARCHAR NOT NULL,
|
|
email VARCHAR NOT NULL UNIQUE,
|
|
password VARCHAR NOT NULL,
|
|
inscription_date DATE DEFAULT current_date,
|
|
is_admin BOOLEAN NOT NULL DEFAULT FALSE,
|
|
CONSTRAINT user_pk PRIMARY KEY (id)
|
|
);
|
|
|
|
CREATE TABLE application (
|
|
id uuid DEFAULT uuid_generate_v4(),
|
|
name VARCHAR NOT NULL,
|
|
service_name VARCHAR NOT NULL,
|
|
CONSTRAINT application_pk PRIMARY KEY (id)
|
|
);
|
|
|
|
CREATE TABLE configuration_file (
|
|
id uuid DEFAULT uuid_generate_v4(),
|
|
path VARCHAR NOT NULL,
|
|
application_id uuid NOT NULL,
|
|
CONSTRAINT configuration_file_pk PRIMARY KEY (id),
|
|
CONSTRAINT configuration_file_application_id_fk FOREIGN KEY (application_id) REFERENCES application (id)
|
|
);
|
|
CREATE INDEX configuration_file_application_id_idx ON configuration_file(application_id);
|
|
|
|
CREATE TABLE application_role (
|
|
user_id uuid NOT NULL,
|
|
application_id uuid NOT NULL,
|
|
role SMALLINT NOT NULL,
|
|
CONSTRAINT application_role_pk PRIMARY KEY (user_id, application_id),
|
|
CONSTRAINT application_role_user_id FOREIGN KEY (user_id) REFERENCES "user" (id),
|
|
CONSTRAINT application_role_application_id FOREIGN KEY (application_id) REFERENCES application (id)
|
|
);
|
|
CREATE INDEX application_role_user_id_idx ON application_role(user_id);
|
|
CREATE INDEX application_role_application_id_idx ON application_role(application_id); |