【问题标题】:How distribute many columns in one table in SQL Server 2012 databaseSQL Server 2012 数据库中如何在一张表中分布多列
【发布时间】:2014-08-18 12:24:41
【问题描述】:

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

我为我们的产品准备了一张桌子。它几乎没有适用于所有常见产品的列。但产品属于制造商。每个制造商都需要一些列用于产品规格。所以我正在考虑我们表的分布..

我认为将所有内容放在一张表中会浪费内存。因为例如,我有 20k 的 Apple 产品和 30k 的华硕产品,40k 的 MSI .. 所以如果我将它们全部放在一个表中,对于 70k 记录来说,Apple 的列将是 NULL..

另一个想法是每个制造商都有几个表,并且在产品中有一些键指向带有 Apple 列的特定表。例如键可以是 apple1、apple2 等等。但是有了这个想法,很难用它们的特定列来显示所有产品。

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 我最初的想法是这样做..但这并没有解决我的问题..因为我的每个产品都有自己的模型类型..所以它就像一张桌子,但只有几列每个产品都有共同点。我给你举了不好的例子。数据库存储食品。例如,我有平板电脑,我需要这组克产品的信息。使用此解决方案,我在 model_type 和 products 中的行数相同..
    【解决方案2】:

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

    • 制造商表(包含可能是特定于 制造商(例如地址、电话等)
    • 产品表,外键引用制造商

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

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

    【讨论】:

    猜你喜欢
    • 2018-07-08
    • 2018-08-30
    • 1970-01-01
    • 2011-05-03
    • 1970-01-01
    • 1970-01-01
    • 2014-01-22
    • 2019-06-06
    • 1970-01-01
    相关资源
    最近更新 更多