我有数以百万计的项目,我需要设置它们是否存在,以适应随时间变化的许多不同配置。
我有四个参数。
Production
14.15
Both-Local-General
Exists
我想创建一个表,其中列名称看起来像Production,14.15,Both-Local-General,Exists
,以存储布尔值,无论该配置是否存在某个项目。每个项目都有一行。
参数将随时间不断变化,因此需要使用C#应用程序添加新列。
我想创建一个新列,每次配置都不同。
这是个坏主意吗?
我应该将参数存储在不同的表中吗?或者有更好的方法吗?
答案 0 :(得分:6)
这是一个坏主意。为什么没有一个名为“Configurations”的表,其中包含两个字段“Parameters”和“Value”。然后创建/更新/删除行而不是列。要做到这一点,另一种方式似乎是完全滥用RDBMS。
答案 1 :(得分:2)
答案 2 :(得分:0)
您可能更喜欢使用像MongoDB或CouchDB这样的NoSQL解决方案。这些解决方案不会强制您的数据采用某种模式,这将缓解在数据持续增长时修改表的问题。
例如,在MongoDB中,您可以拥有第1行的集合:
{
id: 1,
production: myval,
14.15: myval
}
和第2行看起来像:
{
id: 2,
production: myval,
14.20: myval
}
无需从数据库端配置此数据。您只需将它想要存储的json发送给它并存储它。
这是NoSQL可能是解决您问题的更好解决方案的众多示例之一。