1

現在、システムには設定階層があり、個々のユーザー、設定グループの設定を保存できます(各ユーザーは単一の設定グループに関連付けることができますが、設定グループはネストされたセットにあるため、ツリーを照会します親設定グループから継承された値を確認するため)、または顧客レベルの設定 (各ユーザーを 1 人の顧客に関連付けることができます)。

現在、各レベルの設定値を格納する 3 つのテーブルがあります。

  • user_setting_values
  • setting_group_setting_values
  • customer_setting_values

私は経営陣 (最初にシステムを書いた人物でもあります) から、これらのテーブルをすべての設定を保持する 1 つのテーブルにマージするように依頼されました。彼は、「それらすべてを 1 つのテーブルにまとめることは理にかなっています」以外に、それを行うための特に適切な議論を思いつきませんでした。

それで、これは良い考えですか?長所と短所は何ですか?

4

1 に答える 1

0

長所:テーブルが少ない短所
: NULL を避けることは常に良い考えです。異なるレベルを統合すると、通常は NULL 値になります

1 つの表にまとめた場合、実装には通常 2 つのソリューションがあります。

  1. 設定のタイプがレベルごとに同じである場合にタイプ列を使用すると、値はユーザー、グループ、または顧客など、どのレベルのデータに関連するかを反映します。

  2. レベルごとに設定タイプが異なる場合は、列数を拡張します

特定の列の N/A 値を示すために使用される Null

設定のタイプが yes/no の場合、値をブール値として保存すると便利です。

于 2013-02-17T14:10:46.663 に答える