数据库设计 - 多个类别和多个子类别

时间:2017-04-25 12:31:03

标签: sql sql-server database-design relational-database

我有一个关于如何设计多个类别和多个子类别的问题。商店将有多个类别和多个子类别。

例如,商店将以女性服装,男士服装为类别,并将配饰和底部作为子类别

如果重要,我会使用SQL Server 2016.这些是我到目前为止的表格:

TABLE Store
    StoreID INT
    Description NVARCHAR(500)

TABLE Category
    CategoryID INT
    Description NVARCHAR(500)

TABLE Subcategory
    SubcategoryID INT
    CategoryID INT
    Description NVARCHAR(500)

2 个答案:

答案 0 :(得分:1)

只需创建另一个表StoreCategories,即保留StoreID和CategoryID,以允许每个商店拥有多个类别,每个类别都有多个商店。

确保为每个表正确放置外键。 UML Stores/Categories 如果可以在多个类别上使用SubCategory,则可以放置另一个中间表 显然要避免双子类别。

答案 1 :(得分:0)

我不认为拥有单独的Category和SubCategory表有任何价值。只有一个Category表,可以使用TABLE Category CategoryID INT ParentCategory INT Description NVARCHAR(500) 列。

null

您的顶级类别将是ParentCategory TABLE StoreCategory StoreID INT CategoryID INT 的类别。

你说现在不会有多个级别的子类别,但这样的要求有改变的趋势。如果你最终在某些时候需要子子类别,那么你不必用这样的设计重写一堆查询。

然后您需要一个表来存储商店的类别:

internal_busy