次のようにテーブルを構成します:
Id Category ParentId
1 Jewelry NULL
2 Body 1
3 nose ring 2
4 arm ring 2
5 ear ring 2
-
-
これは自己参照テーブルと呼ばれます。つまり、ParentId
列にはNULL
のいずれかが含まれます またはId
からの値 同じテーブルの列。
したがって、すべての直接のsubcategories
を知る必要があるときはいつでも 特定のcategory
の 、次のようなクエリを作成するだけです:
Select * from CategoryMaster where ParentId = 2;
これを行うと、サブカテゴリBody
のすべてのサブカテゴリが取得されます 。
さて、このデータ構造の最良の部分は、任意のサブカテゴリに対してnレベルのサブカテゴリを持つことができ、(少なくとも)3列の同じ単一のテーブルで十分です。