对于我的学校项目,我需要创建一个数据库。这是我的 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?