dbgate/packages/dbmodel/testdata/db.sql
2023-01-28 20:14:44 +01:00

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;