1

Webshop データベースを構築しようとしていますが、サブ サブ カテゴリを提供する SQL 製品テーブルの設計に関して問題があります。

たとえば、常に設定されているメイン カテゴリがあります。

1.Cars

次に、最初のサブカテゴリがあります

1.1 BMW
1.2 Mercedes

最後に、場合によっては、さらに深いカテゴリがあります。

1.1.1 BMW M3
1.1.2 BMW M5

1.2.1 Mercedes 1
1.2.2 Mercedes 2

現在、私は3つのテーブルを持っています:

tbl_Article
int ArticleId
char Description
decimal Price
int Category
int SubCategory

tbl_Category
int CategoryId
char Description
int hasSubCategories

tbl_SubCategory
int SubCategoryId
int Category
char Description

必要に応じて複数のサブカテゴリを持つことができるように、この問題を解決するにはどうすればよいですか?

どうもありがとう!

4

1 に答える 1

1

それ自体に外部キーを持つ「カテゴリテーブル」を設計できます。

tbl_category

int   id                                            --primary key
int   fk_parentCategory REFERENCES tbl_category.id  --foreign key, can be null
char  description
...

tbl_product

int   id         --primary key
int   category   --foreign key, can not be null
char  name
...

fk_parentCategoryは外部キーであり、独自のテーブルを指しています (ただし、カテゴリは異なります)。null にすることもできます。

null の場合はトップ カテゴリです。そうでない場合は、サブカテゴリです。

カテゴリがそれ自体を指していないことだけを気にする必要があります。したがって、列が列idと同じ値であってはなりませんfk_parentCategory

于 2014-01-30T11:06:07.930 に答える