2

我为一个文化站点创建了一个简单的 ERD。这些关系正确吗?

cul_categories ( ||-----|<- ) cul_pages // 旅行至少有一页

cul_categories (||-----O-<-) sub_categories //eg Arts---->Music, painting etc.,或者可以有,例如,没有子类别的Travel。

sub_categories ( ||-----|<- ) cul_pages // 如果我们有音乐,那么至少有一页。

在此处输入图像描述

4

1 回答 1

2

很难确定它是否正确,但有一个问题。您不能强制执行有关“页面”在类别或子类别中的规则,因为您不能使外键列不为空。

为避免这种情况,您可以按如下方式更改模型:

TABLE: Category
-------------------
CategoryID (PK)
ParentCategoryID (FK)
Name

TABLE: Page
--------------
PageID (PK)
CategoryID (FK)
...

这允许您创建从 Page 到 Category 的 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
于 2012-12-29T14:28:14.530 回答