短い質問:複数のカテゴリの下に表示される製品カテゴリはどのように管理する必要がありますか? そうするのは悪い習慣ですか?
背景情報: 次 のようなカテゴリの製品データベースがあります。
Products
-Arts and Crafts Supplies
-Glue
-Paper Clips
-Construction Paper
-Office Supplies
-Glue
-Paper Clips
接着剤とペーパー クリップは両方のカテゴリに割り当てられていることに注意してください。このカテゴリ ツリーでは 2 つの異なる場所に表示されますが、データベースでは同じカテゴリ ID を持っています。なんで?2 つの理由:
- カテゴリには属性が割り当てられます。たとえば、ペーパー クリップには、重量、素材、色などがあります。
- 接着剤カテゴリに割り当てられた製品は、美術工芸品および事務用品の下に表示されます。これは当然のことです。これらはデータベース内の実際のカテゴリ ID と同じです。
これにより、単一のカテゴリとその属性および割り当てられた製品を管理できますが、カテゴリ ツリー内の複数の場所に配置できます。
ネストされたセット モデルを使用しているため、これをサポートするために使用するデータベース構造は次のとおりです。
Category
----------
CategoryID
CategoryName
CategoryTree
------------
CategoryTreeID
CategoryID
Lft
Rgt
したがって、カテゴリ ツリー内に特定のカテゴリの複数のインスタンスが存在する可能性があるため、Category と CategoryTree の間には 1:M があります。
これをモデル化して、製品カテゴリを複数のカテゴリの下に表示できるようにする簡単な方法はありますか?