2012-07-04 107 views
0

我有字段名,f1,f2,f3,f4,f5,f6。这些字段名称将根据其他字段名称的值显示。数据库设计动态表

实施例, F3必须被示出,如果F2的值是“COND1” F4必须被示出,如果f3的值是“COND

字段名称是不固定的,它们可以被添加,编辑和删除。值COND1,标准条件等也是不固定的,它们是可以改变的。

可有人点如何设计数据库 感谢

回答

2

的RDBMS动态表是一个反模式。不要做那

也许NoSQL数据库可能更适合您的用例 - 这就是它们的用途。或者,如果你坚持关系型,那么你需要让你的数据库容纳动态结构 - 就像键值表一样,并且自己管理结构。即表结构将保留结构元数据和数据。

如果你的结构足够简单,你只需要一个额外的表,带有一个组合键 - 原始ID和参数名。

1

如果你唯一的条件是现场==值,那么我会考虑这一点:

| Field Table | 
|-------------| 
| id   | 
| fieldName | 
|-------------| 

| Conditional Table | 
|-------------------| 
| id    | 
| comparisonField | 
| comparisonValue | 
| displayField  | 
|-------------------| 

所以条件1将值1,2, “COND1”,4至IF域2 ==秀场4 “COND1”

如果您想要其他比较,小于,大于等等。还有一个比较器表链接到条件表。