2014-06-08 178 views
0

我建立一个数据库来存储类别,每个类别都有多个子类别。SQL Azure数据库的设计问题

我试图找到设计的最佳方式,但不能真的认为任何东西,除了为每个类别创建一个表,这种感觉有点乱看怎么会有至少50个类别。有没有办法我可以创建一个“类别” - 表,并以某种方式有一个名为“SubCategories”列多个字符串?如果是这样,我将如何分割这些子类别,以便我可以在没有来自应用程序的问题的情况下检索它们?

+1

我在想,如果我做了一个表的类别,并给他们全部潮头ID是什么,然后我做了一个子类别的表,给他们相应的ID。我能以这种方式从我的应用程序中为每个类别检索正确的子类别吗? –

回答

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 

当然,如果你使用的数据库访问技术,如实体框架的ñ你最有可能不会写这种SQL作为EF会为你照顾。

+0

谢谢,将与此:) –