1

假设数据库有一个成员表。在每个成员添加他们可以创建的产品和他们自己的类别之前,然后是一个子类别,甚至是一个子子类别。他们添加的产品可能只属于一个类别,但另一个可能属于子子类别。我正在尝试考虑最有效的方法。我知道下面的例子可能不正确,但希望能解释我的想法。

Member 
MemberID  Name  
-----------------------
Member_Category
CategoryID, MemberID, CategoryName
------------------------------------
Member_SubCategory
SubCategoryID, CategoryID, SubCategoryName
---------------------------------
Member_SubSubCategory
SubSubCategoryID, SubCategoryID, SubSubCategoryName
----------------------------
Product
ProductID, MemberID, CategoryID, SubCategoryID, SubSubCategoryID, ProductName, Cost
4

1 回答 1

0

首先,产品应该只有一个“categoryID”列,没有 subs。

如果产品可以同时属于多个类别,最好将其放在单独的表“products2categies”中,其中包含“productID”和“columnID”列。

其次,有不同的方法可以在数据库中实现树形结构。我会给你最简单的。在“categories”表中创建这个结构:“categoryID”、“category_name”和“parentID”列。前两个是不言自明的,第三个指向父类。如果这是一个主要类别,则使 'parentID' = 0。

有关 DB 中树结构的更多信息,请参阅在关系数据库中存储树结构的已知方法是什么?

Member 
MemberID  Name  
-----------------------
Member_Category
CategoryID, MemberID, CategoryName, ParentID
------------------------------------
Product
ProductID, MemberID, CategoryID, ProductName, Cost
于 2013-03-08T14:51:55.080 回答