产品的MySql,可选类别,子类别和子子类别

时间:2013-03-08 14:06:14

标签: mysql database

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

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

1 个答案:

答案 0 :(得分:0)

首先,产品应该只有一个'categoryID'列,没有sub。

如果产品可以同时出现在多个类别中,最好将其放在单独的“products2categies”表中,并附带“productID”和“columnID”列。

其次,在DB中实现树结构有不同的方法。我会为你提供最简单的。 在'categories'表中创建此结构:'categoryID','category_name'和'parentID'列。前两个是自我解释的,第三个是父类。如果这是一个主要类别,请将'parentID'= 0。

有关数据库中树结构的更多信息,请参阅此What are the known ways to store a tree structure in a relational DB?

Member 
MemberID  Name  
-----------------------
Member_Category
CategoryID, MemberID, CategoryName, ParentID
------------------------------------
Product
ProductID, MemberID, CategoryID, ProductName, Cost