2

文化的なサイト用の簡単なERDを作成しました。これらの関係は正しいですか?

cul_categories(|| ----- | <-)cul_pages//旅行には少なくとも1つのページがあります

cul_categories(|| ----- O-<-)sub_categories //例:Arts ---->音楽、絵画など、またはたとえば、サブカテゴリのない旅行が存在する場合があります。

sub_categories(|| ----- | <-)cul_pages //音楽がある場合は、少なくとも1ページ。

ここに画像の説明を入力してください

4

1 に答える 1

2

正しいかどうかはわかりませんが、問題があります。外部キー列をnull以外にすることはできないため、「ページ」がカテゴリまたはサブカテゴリのいずれかにあるというルールを適用することはできません。

これを回避するには、次のようにモデルを変更できます。

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
于 2012-12-29T14:28:14.530 に答える