简短问题:如何管理出现在多个类别下的产品类别?这样做是不好的做法吗?
背景信息: 我们有一个类别如下的产品数据库:
Products
-Arts and Crafts Supplies
-Glue
-Paper Clips
-Construction Paper
-Office Supplies
-Glue
-Paper Clips
请注意,胶水和纸夹被分配到两个不同的类别中。虽然它们出现在此类别树的不同位置,但它们在数据库中具有相同的类别ID。为什么?原因有两个:
- 类别被分配属性 - 例如,纸夹可以有重量、材料、颜色等属性。
- 分配给胶水类别的产品显示在艺术和工艺品以及办公用品下。这是可以预期的 - 它们实际上是数据库中相同的类别ID。
这使我们能够管理单个类别及其属性和分配的产品,但将其放置在类别树中的多个位置。
我们使用嵌套集模型,因此我们用于支持此模型的数据库结构如下:
Category
----------
CategoryID
CategoryName
CategoryTree
------------
CategoryTreeID
CategoryID
Lft
Rgt
因为在类别树中可以有同一类别的多个实例,所以Category和CategoryTree之间存在1:M关系。
是否有一种更简单的建模方式,允许产品类别显示在多个类别下?