繁体   English   中英

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

[英]How distribute many columns in one table in SQL Server 2012 database

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

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

我认为将所有这些存储在一个表中会浪费内存。 例如,因为我有2万个产品用于Apple,而华硕则有30k,MSI有40k ..因此,如果我在一张表中将苹果的所有列全部存储为70k条记录,则为NULL。

另一个想法是,我每个制造商的表都很少,产品中的某些键指向Apple带有列的特定表。例如,键可以是apple1,apple2等。 但是有了这个主意,很难用其特定的列来显示所有产品。

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

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

感谢您对这个问题的帮助。

建立数据库的目的是将信息作为一组相关的集合进行处理……并使用选择标准来获取您要使用的内容。 您应该根据您的信息元素的工作方式进行设计。

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

然后,您可以选择类似Apple的信息,例如

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

您可以使用这种结构...这只是示例...

如果要比较规格,则带有产品数据的表格会更加复杂...

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM