私の学校のプロジェクトでは、データベースを作成する必要がありました。これは私の ERD です。
SQL で、Category テーブルを作成します。
CREATE table "Category" (
"Id" NUMBER(5) NOT NULL,
"SubCategoryId" NUMBER(5) NULL,
"Name" VARCHAR2(32) NOT NULL,
CONSTRAINT "Category_pk" PRIMARY KEY ("Id")
);
ALTER TABLE "Category" ADD CONSTRAINT "Category_fk" FOREIGN KEY ("SubCategoryId") REFERENCES "Category" ("Id");
製品表
CREATE table "Product" (
"Id" NUMBER(5) NOT NULL,
"CategoryId" NUMBER(5) NOT NULL, /* Category.Id or Category.SubCategoryId */
"Name" VARCHAR2(32) NOT NULL,
"Brand" VARCHAR2(32),
"Type" VARCHAR2(32),
"Year" NUMBER(4),
CONSTRAINT "Product_pk" PRIMARY KEY ("Id")
);
製品テーブルには、Category.Id に CategoryId (外部キー) がありますが、Product.CategoryId には、Category.SubCategoryId にも外部キーが必要です。
これは可能ですか、それとも「SubCategory」という追加のテーブルを作成してから、Category.Id と SubCategory.Id に外部キーを追加する必要がありますか?