0

我有字段名 f1、f2、f3、f4、f5、f6。这些字段名称将根据其他字段名称的值显示。

例如,必须显示 f3,如果 f2 值为“COND1”,则必须显示 f4,如果 f3 值为“COND”

字段名称不固定,可以添加、编辑和删除。COND1、COND 等值也不是固定的,可以更改。

有人能指出如何设计数据库吗 谢谢

4

2 回答 2

2

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

也许 NoSQL 数据库可能更适合您的用例——这就是它们的用途。

或者,如果你坚持关系,那么你需要让你的数据库适应动态结构——比如键值表,并自己管理结构。即表结构将保留结构元数据和数据。

如果您的结构足够简单,您只需要一个带有复合键的附加表 - 原始 ID 和参数名称。

于 2012-07-04T14:32:26.710 回答
1

如果您的唯一条件是 field == value 那么我会考虑这个:

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

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

因此条件 1 将具有值 1, 2, "COND1", 4 以显示字段 4 如果字段 2 == "COND1"

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

于 2012-07-04T15:02:26.740 回答