SQL列名称使用多个参数的最佳实践?

时间:2014-09-25 20:36:16

标签: sql sql-server sql-server-2014

我有数以百万计的项目,我需要设置它们是否存在,以适应随时间变化的许多不同配置。

我有四个参数。

  1. Production
  2. 14.15
  3. Both-Local-General
  4. Exists
  5. 我想创建一个表,其中列名称看起来像Production,14.15,Both-Local-General,Exists,以存储布尔值,无论该配置是否存在某个项目。每个项目都有一行。

    参数将随时间不断变化,因此需要使用C#应用程序添加新列。

    我想创建一个新列,每次配置都不同。

    这是个坏主意吗?

    我应该将参数存储在不同的表中吗?或者有更好的方法吗?

3 个答案:

答案 0 :(得分:6)

这是一个坏主意。为什么没有一个名为“Configurations”的表,其中包含两个字段“Parameters”和“Value”。然后创建/更新/删除行而不是列。要做到这一点,另一种方式似乎是完全滥用RDBMS。

答案 1 :(得分:2)

创建一个包含参数名称的单个列的表更有效,并使用PivotCase When显示它,就像查询它时所提到的那样。

答案 2 :(得分:0)

您可能更喜欢使用像MongoDB或CouchDB这样的NoSQL解决方案。这些解决方案不会强制您的数据采用某种模式,这将缓解在数据持续增长时修改表的问题。

例如,在MongoDB中,您可以拥有第1行的集合:

{
  id: 1,
  production: myval,
  14.15: myval
}

和第2行看起来像:

{
  id: 2,
  production: myval,
  14.20: myval
}

无需从数据库端配置此数据。您只需将它想要存储的json发送给它并存储它。

这是NoSQL可能是解决您问题的更好解决方案的众多示例之一。