如何在SQL Server 2012数据库中的一个表中分发许多列

时间:2014-08-18 12:24:42

标签: sql sql-server database sql-server-2012 product

我正在考虑数据库中的问题。

我的产品有一张桌子。它几乎没有列适用于所有常见产品。但产品属于制造商。每个制造商都需要一些列用于产品规格。所以我在考虑我们桌子的发行版。

我认为将它全部放在一张桌子上是浪费内存。因为例如我为Apple提供20k产品,为Asus提供30k产品,为MSI提供40k产品..所以,如果我将所有产品放在一个表中,那么对于70k记录,apple将为NULL。

另一个想法是,我为每个制造商提供了几张桌子,而且产品中有一些键指向具有Apple列的特定表格。例如,键可以是apple1,apple2等等。但是有了这个想法,用特定的列显示所有产品是非常困难的。

所以我想问一下是否有人在数据库中思考这个问题。

我正在使用SQL Server 2012作为我们的数据库。

感谢您对此问题的任何帮助。

2 个答案:

答案 0 :(得分:0)

构建数据库是为了将信息作为相关集合的集合处理......并使用选择标准来获得您想要使用的内容。您应该根据信息元素的工作方式进行设计......例如:

  • 制造商表格(包含可能特有的信息) 制造商(例如地址,电话等)
  • 产品表,带有对制造商的外键引用

然后,您可以选择Apple等信息,例如

select xxx 
from Product p, Manufacturer m 
where p.manufacturerID = m.manufacturerID and m.name = "Apple"

答案 1 :(得分:0)

你可以使用这样的结构...... 这只是一个例子...

如果您想比较规格,表格与产品数据会更复杂......

enter image description here