4 deleted inheritance, course deadline_date
This commit is contained in:
39
4/schema.sql
39
4/schema.sql
@ -1,39 +1,40 @@
|
||||
DROP TABLE IF EXISTS "Person" CASCADE;
|
||||
DROP SEQUENCE IF EXISTS "PersonId";
|
||||
DROP TABLE IF EXISTS "Person", "Client", "Master", "Studio", "Course", "Class", "Class_Master", "Registration", "FoodProductEnum", "FoodProduct", "Equipment", "Class_Equipment", "DrugEnum", "Drug", "DrugIntolerance", "ActivityLog";
|
||||
|
||||
|
||||
CREATE SEQUENCE "PersonId";
|
||||
DROP TYPE IF EXISTS "ClassType", "RegistrationStatus", "EquipmentUsageType";
|
||||
|
||||
|
||||
CREATE TABLE "Person" (
|
||||
id int PRIMARY KEY DEFAULT nextval('"PersonId"'),
|
||||
id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
|
||||
full_name text NOT NULL,
|
||||
passwd_hash bytea NOT NULL
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE "Client" (
|
||||
"Person_id" int UNIQUE NOT NULL,
|
||||
|
||||
phone text NOT NULL,
|
||||
email text NOT NULL,
|
||||
billing_account text NOT NULL,
|
||||
|
||||
PRIMARY KEY (id)
|
||||
) INHERITS ("Person");
|
||||
|
||||
FOREIGN KEY ("Person_id") REFERENCES "Person" (id)
|
||||
ON DELETE CASCADE
|
||||
ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE "Master" (
|
||||
"Person_id" int UNIQUE NOT NULL,
|
||||
|
||||
passport text UNIQUE NOT NULL,
|
||||
readme text NOT NULL,
|
||||
|
||||
PRIMARY KEY (id)
|
||||
) INHERITS ("Person");
|
||||
FOREIGN KEY ("Person_id") REFERENCES "Person" (id)
|
||||
ON DELETE CASCADE
|
||||
ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS "Studio", "Course", "Class", "Class_Master", "Registration", "FoodProductEnum", "FoodProduct", "Equipment", "Class_Equipment", "DrugEnum", "Drug", "DrugIntolerance", "ActivityLog";
|
||||
|
||||
|
||||
DROP TYPE IF EXISTS "ClassType", "RegistrationStatus", "EquipmentUsageType";
|
||||
|
||||
CREATE TABLE "Studio" (
|
||||
id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
|
||||
address text UNIQUE NOT NULL,
|
||||
@ -48,9 +49,9 @@ CREATE TABLE "Course" (
|
||||
"Master_id" int,
|
||||
name text NOT NULL,
|
||||
price real NOT NULL CHECK (price > 0),
|
||||
duration interval NOT NULL,
|
||||
deadline_date timestamptz NOT NULL,
|
||||
|
||||
FOREIGN KEY ("Master_id") REFERENCES "Master" (id)
|
||||
FOREIGN KEY ("Master_id") REFERENCES "Master" ("Person_id")
|
||||
ON DELETE SET NULL
|
||||
ON UPDATE CASCADE
|
||||
);
|
||||
@ -89,7 +90,7 @@ CREATE TABLE "Class_Master" (
|
||||
|
||||
PRIMARY KEY ("Class_begin_date", "Class_Course_id", "Master_id"),
|
||||
|
||||
FOREIGN KEY ("Master_id") REFERENCES "Master" (id)
|
||||
FOREIGN KEY ("Master_id") REFERENCES "Master" ("Person_id")
|
||||
ON DELETE CASCADE
|
||||
ON UPDATE CASCADE,
|
||||
|
||||
@ -113,7 +114,7 @@ CREATE TABLE "Registration" (
|
||||
|
||||
PRIMARY KEY ("Client_id", "Course_id"),
|
||||
|
||||
FOREIGN KEY ("Client_id") REFERENCES "Client" (id)
|
||||
FOREIGN KEY ("Client_id") REFERENCES "Client" ("Person_id")
|
||||
ON DELETE CASCADE
|
||||
ON UPDATE CASCADE,
|
||||
|
||||
|
||||
Reference in New Issue
Block a user