2017-04-07 10 views
0

時間が経つにつれて列が追加されるSQLテーブルを作成しています。 a Productテーブル最初の列は、stock_countproduct_nameです。SQLテーブルの列の使用方法に関するメタデータの管理

これらのフィールドをUIでどのようにレンダリングするかについての別の表があります。例えば、在庫数は数値入力フィールドで表示され、product_nameは文字列入力フィールドで表示されます。

私のようなもの、これらの各フィールドを説明する別のテーブルを持っているしたいと思います:まず

field_schema 
| id | field_name | ui_field | 
| 1 | stock_count | number | 
| 2 | product_name | string | 

はわずか数ui_field種類がありますが、これらは上へ後で変更される可能性がありドロップダウン、ラジオボタンセットなどを含み、これらのタイプを独自のテーブルに持つことを保証する。

私の質問をされた、製品テーブルの列と同期field_schema表にを維持する任意の簡単な方法はありますか?これは間違ったアプローチですか?

答えて

0

これは物事を保存する好奇心のような方法のようです。列を記述するテーブルを作成する場合は、すべての方法を使用してEAVモデルを使用します。つまり、表内の単一の行に列を格納する代わりに、各値を別々の行に格納します。

これにより、EAVテーブルの外部キー関係を使用して、列の説明にリンクすることができます。

また、DDL triggerを使用して、新しい列が追加されたときに、その列の説明がすでにフィールドの説明テーブルに存在することを確認できます。つまり、既存のテーブルに列を追加する必要があるアプリケーション設計は疑わしいと思われます。

+0

クエリ可能性の要件のため、フィールドを追加することはやや制御されたプロセスになるため、EAVモデルを使用しないことにしました。 – J3Y

関連する問題