Dis*_*ile 10 sql database-design sql-server-2008
我有一个问题,我将如何在我的数据库中设计几个表.我有一个表来跟踪类别,一个用于子类别:
TABLE Category
CategoryID INT
Description NVARCHAR(500)
TABLE Subcategory
SubcategoryID INT
CategoryID INT
Description NVARCHAR(500)
Run Code Online (Sandbox Code Playgroud)
类别可能类似于电子产品,其子类别可能是DVD播放器,电视等.
我有另一个表将引用Category/Subcategory.是否需要引用SubcategoryID?
TABLE Product
SubcategoryID INT -- should this be subcategory?
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点,还是这是正确的方法?我不是一个数据库设计人员.如果重要的话,我正在使用SQL Server 2008 R2.
Eri*_*off 10
你的设计是合适的.我是一个数据库人员变成开发人员,所以我可以理解在一个表中有Category和SubCategory的倾向,但是KISS永远不会出错.
除非要求极端性能或无限等级(我猜不是),否则你很高兴.
如果能够将多个子类别与产品相关联是一项要求,那么对于@ Mikael来说,您需要这样的设置,通过连接/交叉表Product_SubCategory创建多对多关系:
CREATE TABLE Product (ProductID int, Description nvarchar(100))
CREATE TABLE Product_SubCategory (ProductID int, SubCategoryID int)
CREATE TABLE SubCategory (SubCategoryID int, CategoryID int, Description nvarchar(100))
CREATE TABLE Category (CategoryID int, Description nvarchar(100))
Run Code Online (Sandbox Code Playgroud)
希望有帮助......
Eric Tarasoff