0

フィールド名は f1、f2、f3、f4、f5、f6 です。これらのフィールド名は、他のフィールド名の値に応じて表示されます。

例、f2 の値が「COND1」の場合、f3 を表示する必要があります。f3 の値が「COND」の場合、f4 を表示する必要があります。

フィールド名は固定ではなく、追加、編集、および削除できます。COND1、COND などの値も固定ではなく、変更できます。

誰かがデータベースの設計方法を指摘できますか ありがとう

4

2 に答える 2

2

RDBMS の動的テーブルはアンチパターンです。そんなことしたらダメ。

あなたのユースケースには NoSQL データベースの方が適しているかもしれません。それが NoSQL データベースの目的です。

または、リレーショナルを主張する場合は、データベースを動的構造 (キーと値のテーブルなど) に対応させ、構造を自分で管理する必要があります。つまり、テーブル構造は、構造のメタデータとデータの両方を保持します。

構造が十分に単純な場合は、複合キー (元の ID とパラメーターの名前) を持つ追加のテーブルが 1 つだけ必要です。

于 2012-07-04T14:32:26.710 に答える
1

あなたの唯一の条件がfield==valueである場合、私はこれを考慮します:

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

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

したがって、条件1の値は1、2、 "COND1"、4であり、フィールド2 == "COND1"の場合、フィールド4が表示されます。

他の比較が必要な場合は、より小さい、より大きいなど。条件付きテーブルにリンクするコンパレータのテーブルもあります。

于 2012-07-04T15:02:26.740 に答える