0

いくつかの MySQL リレーションを定義しようとしています。以下に示すように、3つのテーブルがあります。

     employee:
     | id | first_name | last_name | email

     notifications: (notification names are email, post etc)
     | id | name             | description

     employee_notifications:
     | id | employee_id | notification_id |

json_encode を使用して従業員のすべての通知 ID を 1 つの行に挿入するように employee_notifications テーブルを変更することに利点 (または欠点) はありますか?

現在、100 人の従業員と 6 つの通知方法があります。

4

2 に答える 2

2

json_encode を使用して従業員のすべての通知 ID を 1 つの行に挿入するように employee_notifications テーブルを変更することに利点 (または欠点) はありますか?

重大な欠点があります。現在の設定では、従業員がどの通知を持っているか、またはどの従業員が特定の通知を購読しているかを簡単に見つけることができます。従業員テーブルにJSONとして配置すると、それを行う能力が失われます。

于 2012-11-22T01:25:54.700 に答える
1

常に完璧なアプローチではなく、すべての状況に適用できるわけではありませんが、時間の経過とともに優れた保守性を維持するための優れた経験則は次のとおりです。

プライマリ データ構造で十分に正規化されたものを使用し (場合によっては行き過ぎているため、完全には言いません)、ビュー、ストアド プロシージャ、またはコード合成データ オブジェクトを使用して、そのデータの最適化された使用法ビューを作成します。

于 2012-11-22T01:27:03.870 に答える