42 lines
1.5 KiB
SQL
42 lines
1.5 KiB
SQL
CREATE TABLE "comparison_dimensions" (
|
|
"id" text PRIMARY KEY NOT NULL,
|
|
"comparison_id" text NOT NULL,
|
|
"name" text NOT NULL,
|
|
"description" text,
|
|
"weight" integer DEFAULT 1,
|
|
"order" integer NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "comparison_items" (
|
|
"id" text PRIMARY KEY NOT NULL,
|
|
"comparison_id" text NOT NULL,
|
|
"name" text NOT NULL,
|
|
"description" text,
|
|
"image_url" text,
|
|
"research_data" jsonb,
|
|
"scores" jsonb,
|
|
"pros" text[],
|
|
"cons" text[],
|
|
"order" integer NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "comparisons" (
|
|
"id" text PRIMARY KEY NOT NULL,
|
|
"user_id" text,
|
|
"title" text NOT NULL,
|
|
"query" text,
|
|
"slug" varchar(255) NOT NULL,
|
|
"status" text DEFAULT 'researching' NOT NULL,
|
|
"summary" text,
|
|
"overall_data" jsonb,
|
|
"tags" text[],
|
|
"is_public" boolean DEFAULT false,
|
|
"view_count" integer DEFAULT 0,
|
|
"created_at" timestamp DEFAULT now() NOT NULL,
|
|
"updated_at" timestamp DEFAULT now() NOT NULL,
|
|
CONSTRAINT "comparisons_slug_unique" UNIQUE("slug")
|
|
);
|
|
--> statement-breakpoint
|
|
ALTER TABLE "comparison_dimensions" ADD CONSTRAINT "comparison_dimensions_comparison_id_comparisons_id_fk" FOREIGN KEY ("comparison_id") REFERENCES "public"."comparisons"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
|
ALTER TABLE "comparison_items" ADD CONSTRAINT "comparison_items_comparison_id_comparisons_id_fk" FOREIGN KEY ("comparison_id") REFERENCES "public"."comparisons"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
|
CREATE INDEX "comparisons_user_id_idx" ON "comparisons" USING btree ("user_id"); |