我有字段名,f1,f2,f3,f4,f5,f6。这些字段名称将根据其他字段名称的值显示。
实施例, 如果f2值为“COND1”,则必须显示f3 如果f3值为“COND
,则必须显示f4字段名称不固定,可以添加,编辑和删除。值COND1,COND等也不固定,可以更改。
有人可以指出如何设计数据库 感谢
答案 0 :(得分:2)
RDBMS的动态表是一种反模式。不要那样做。
也许NoSQL数据库可能更适合您的用例 - 这就是它们的用途。
或者,如果你坚持关系,那么你需要使你的数据库适应动态结构 - 类似于键值表并自己管理结构。即表结构将保留结构元数据和数据。
如果您的结构足够简单,您只需要一个附加表,其中包含复合键 - 原始ID和参数名称。
答案 1 :(得分:1)
如果您的唯一条件是field == value,那么我会考虑这个:
| Field Table |
|-------------|
| id |
| fieldName |
|-------------|
| Conditional Table |
|-------------------|
| id |
| comparisonField |
| comparisonValue |
| displayField |
|-------------------|
因此条件1将具有值1,2,“COND1”,4如果字段2 ==“COND1”则显示字段4
如果你想要其他比较,小于,大于等。还有一个比较表可以链接到条件表。