mirror of
https://github.com/dbgate/dbgate
synced 2024-11-08 04:35:58 +00:00
77 lines
2.5 KiB
SQL
77 lines
2.5 KiB
SQL
BEGIN TRANSACTION;
|
|
CREATE TABLE "language" (
|
|
"language_id" CHARACTER(31) NOT NULL,
|
|
"name" VARCHAR(255) NULL,
|
|
PRIMARY KEY ("language_id")
|
|
);
|
|
CREATE TABLE "preparation_step" (
|
|
"preparation_step_id" SERIAL,
|
|
"recipe_id" INTEGER NULL,
|
|
"description" VARCHAR NULL,
|
|
"duration" INTERVAL NULL,
|
|
"step_order" SMALLINT NULL,
|
|
"language_id" CHARACTER(31) NULL,
|
|
PRIMARY KEY ("preparation_step_id")
|
|
);
|
|
CREATE TABLE "recipe" (
|
|
"recipe_id" SERIAL,
|
|
"name" VARCHAR(1000) NOT NULL,
|
|
"is_public" BOOLEAN NULL,
|
|
"user_id" INTEGER NULL,
|
|
"source_url" VARCHAR(1000) NULL,
|
|
"cook_duration" INTERVAL NULL,
|
|
"servings" SMALLINT NULL,
|
|
"language_id" CHARACTER(31) NULL,
|
|
"deleted_date" TIMESTAMP NULL,
|
|
PRIMARY KEY ("recipe_id")
|
|
);
|
|
CREATE TABLE "recipe_has_ingredient" (
|
|
"recipe_id" INTEGER NOT NULL,
|
|
"recipe_ingredient_id" INTEGER NOT NULL,
|
|
"unit_id" INTEGER NULL,
|
|
"unit" VARCHAR(100) NULL,
|
|
"name" VARCHAR(1000) NULL,
|
|
"amount" REAL NULL,
|
|
PRIMARY KEY ("recipe_id", "recipe_ingredient_id")
|
|
);
|
|
CREATE TABLE "recipe_photo" (
|
|
"recipe_photo_id" SERIAL,
|
|
"path" VARCHAR NULL,
|
|
"name" VARCHAR(255) NULL,
|
|
"recipe_id" INTEGER NULL,
|
|
"user_id" INTEGER NULL,
|
|
"created_on" TIMESTAMP NULL,
|
|
PRIMARY KEY ("recipe_photo_id")
|
|
);
|
|
CREATE TABLE "shop" (
|
|
"shop_id" SERIAL,
|
|
"name" VARCHAR(255) NULL,
|
|
"url" VARCHAR NULL,
|
|
"logo_path" VARCHAR NULL,
|
|
PRIMARY KEY ("shop_id")
|
|
);
|
|
CREATE TABLE "unit" (
|
|
"unit_id" SERIAL,
|
|
"name" VARCHAR(255) NOT NULL,
|
|
"user_id" INTEGER NULL,
|
|
PRIMARY KEY ("unit_id")
|
|
);
|
|
CREATE TABLE "user" (
|
|
"user_id" SERIAL,
|
|
"name" VARCHAR(255) NULL,
|
|
"email" VARCHAR(255) NULL,
|
|
"password_hash" VARCHAR NULL,
|
|
"last_logged_on" TIMESTAMP NULL,
|
|
"user_settings_id" INTEGER NULL,
|
|
PRIMARY KEY ("user_id")
|
|
);
|
|
ALTER TABLE "preparation_step" ADD FOREIGN KEY ("recipe_id") REFERENCES "recipe" ("recipe_id");
|
|
ALTER TABLE "preparation_step" ADD FOREIGN KEY ("language_id") REFERENCES "language" ("language_id");
|
|
ALTER TABLE "recipe" ADD FOREIGN KEY ("user_id") REFERENCES "user" ("user_id");
|
|
ALTER TABLE "recipe" ADD FOREIGN KEY ("language_id") REFERENCES "language" ("language_id");
|
|
ALTER TABLE "recipe_has_ingredient" ADD FOREIGN KEY ("recipe_id") REFERENCES "recipe" ("recipe_id");
|
|
ALTER TABLE "recipe_has_ingredient" ADD FOREIGN KEY ("unit_id") REFERENCES "unit" ("unit_id");
|
|
ALTER TABLE "recipe_photo" ADD FOREIGN KEY ("recipe_id") REFERENCES "recipe" ("recipe_id");
|
|
ALTER TABLE "recipe_photo" ADD FOREIGN KEY ("user_id") REFERENCES "user" ("user_id");
|
|
COMMIT;
|