我正在建立一个数据库来存储类别,每个类别都有多个子类别。
我正在努力寻找设计这个的最好方法,但除了为每个类别创建一个表之外,Cant真的想到了什么,看到至少有50个类别会觉得有点混乱。有没有办法可以创建一个"类别" -table,并以某种方式有一个名为" SubCategories"列出多个字符串?如果是这样,我将如何分割这些子类别,以便我可以在没有应用程序问题的情况下检索它们?
答案 0 :(得分:1)
您的评论是大多数人会选择的解决方案。
创建表格Categories
和第二张表格SubCategories
。
Categories
会有一个唯一的主键CategoryID
(想想Identity
)。
SubCategories
会有一个主键SubCategoryID
和一个外键 CategoryID
现在假设您的代码中有一个类别,并且您希望获得所有子类别:
DECLARE @CategoryID BIGINT = 23
SELECT s.SubCategoryID, s.CategoryID, s.Name
FROM SubCategories s
WHERE s.CategoryID = @CategoryID
当然,如果您使用的是像 Entity Framework 这样的数据库访问技术,那么您很可能不会编写这种SQL,因为 EF 会照顾对你而言。