我为一个文化网站创建了一个简单的 ERD。这些关系正确吗?
cul_categories ( ||-----|<- ) cul_pages//旅行至少有一页
cul_categories ( ||-----O-<- ) sub_categories//例如艺术---->音乐、绘画等,或者可以有,例如没有子类别的旅行。
sub_categories ( ||-----|<- ) cul_pages//如果我们有音乐,那么至少需要一页。
最佳答案
很难确定它是否正确,但有一个问题。您无法强制执行有关“页面”属于类别或子类别的规则,因为您无法使外键列不为空。
为了避免这种情况,您可以按如下方式更改模型:
TABLE: Category
-------------------
CategoryID (PK)
ParentCategoryID (FK)
Name
TABLE: Page
--------------
PageID (PK)
CategoryID (FK)
...
这允许您创建从页面到类别的 NOT NULL 外键关系; ParentCategoryID 为 NULL 的类别是“顶级”类别,parentCategoryID 为子类别。
示例数据:
Category
CategoryID ParentCategory Name
-----------------------------------------
1 null Arts
2 1 Painting
3 1 Music
4 null Travel
Page
PageID CategoryID Name
-------------------------------------
1 2 Page about painting
2 3 Page about music
3 3 Another page about music
4 4 Page about travel
关于database - ERD 中的关系问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14068531/