2014-09-25 70 views
0

我有数以百万计的项目,我需要设置它们是否存在或许多不同的配置会随着时间而改变。为SQL列名使用多个参数的最佳实践?

我有四个参数。

  1. Production
  2. 14.15
  3. Both-Local-General
  4. Exists

我想创建一个表,其中列名看起来像Production,14.15,Both-Local-General,Exists存储布尔值是否存在对某一个项目该配置。这些项目将有一行。

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

我想创建一个新的列,其中的配置每次都会有所不同。

这是一个坏主意吗?

我应该将参数存储在不同的表中吗?还是有更好的方法来做到这一点?

回答

6

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

0

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

例如,在MongoDB中你可以有一个集合,其中第1行的样子:

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

和第2行的样子:

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

没有必要过配置,从这个数据数据库方面。您只需将它发送给您想要存储的json并存储它即可。

这是许多例子中的一个,NoSQL可能是您的问题更好的解决方案。

2

它更有效地为参数名称创建一个具有单列的表格,并使用PivotCase When来显示它,就像您在查询时所提到的那样。