如何定义类似checkboxlist的数据库字段

时间:2012-07-11 15:04:00

标签: entity-framework database-design database-relations

我尝试在互联网上寻找答案,但由于我不太了解数据库,因此我无法将我的问题作为谷歌搜索工作。

如果在某个地方得到了解答,我道歉,但我似乎无法找到它。我们非常感谢能够回答这个问题的链接。

我正在尝试在我的数据库中设置表。我有一个包含许多字段的软件表,包括一个名为"与...兼容的字段。"

"与"兼容用于存储该软件兼容的操作系统(即Windows XP,Windows 7等)。很简单。

对于具有一定数量响应的其他字段(如下拉列表),我已使用单独的表和外键对数据库进行了规范化。我的猜测是,这将是"良好的做法"这样做也适用于"与"兼容字段,但我不确定如何设置规范化表。

我在http://forums.asp.net/t/1675666.aspx/1发现了一些可能正确的方向,所以我想把我的桌子做成这样:

Column Name          Data Type
CompatibleWithId     int
Windows XP           bit
Windows 7            bit

...want to be able to add more later...

我遇到的问题是,将来我需要添加到"与"兼容的选项列表中。领域。有没有一种方法在C#代码(我使用的是MVC 2和Entity Framework 4.3.1)中添加一个列到上面的表中?或者是否有一种完全不同的方式我应该设置它?

1 个答案:

答案 0 :(得分:1)

根据我对您的软件要求的理解(如果我错了请纠正我),这是我将如何拥有数据库架构

table1: software (id, name, blah, blah)
table2: operating_sys (id, os_name, version)
table3: compatibility (software_id, os_id)

关系:

Software to compatibility --> one to Many

因此兼容性表将为每个软件提供多行。现在将来,如果您有更多的操作系统或版本,您可以将它们添加到operating_sys表中,并在兼容性表中添加相应的条目。

那是你在寻找什么?