私は、この質問が何度も聞かれ、回答されていることを知っており、次の質問を読むのにかなりの時間を費やしました。
問題は、いくつかのクラスのソリューションに対するサポーターの分布がやや均一に見えることです。
- 正規化されている限り、ユーザー設定を 1 つのテーブルに固定する
- 「users」と「user_settings」など、1 対 1 の 2 つのテーブルに分割します。
- ある種のキー値システムで一般化する
- ビットフィールドまたはその他のシリアル化された形式でフラグを設定する
したがって、重複した質問をする危険を冒して、私の特定のシナリオについて説明し、できればより具体的な回答を得たいと思います。
現在、私のサイトにはmysqlに単一のユーザーテーブルがあり、約10〜15列(ID、名前、電子メール、パスワード...)があります
さまざまな種類のイベント (notify_if_user_follows_me、notify_if_user_messages_me、notify_when_friend_posts_new_stuff...) について電子メール アラートを送信するかどうかについて、ユーザーごとの設定を追加したいと考えています。
将来的には、ほとんどの場合ユーザーと 1 対 1 である、ユーザーごとの設定を 1 つ追加することはめったになくなると思います。
メインのユーザーテーブルを読みやすくするために、2番目の user_settings テーブルを作成し、そこにメール通知設定などの「必須ではない」情報を貼り付けようとしていますが、何が期待されているかを聞いて非常に興味があります。