0

私は、この質問が何度も聞かれ、回答されていることを知っており、次の質問を読むのにかなりの時間を費やしました。

問題は、いくつかのクラスのソリューションに対するサポーターの分布がやや均一に見えることです。

  • 正規化されている限り、ユーザー設定を 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 テーブルを作成し、そこにメール通知設定などの「必須ではない」情報を貼り付けようとしていますが、何が期待されているかを聞いて非常に興味があります。

4

2 に答える 2

1

あなたのジレンマは、ユーザーテーブルを垂直に分割するかどうかのようです。この SO Q/A も読むことをお勧めします。

于 2011-08-03T12:07:25.243 に答える
0

2 つのテーブルを追加するために投票するつもりです... (いくつかの sota キー値システム)

列の代わりにデータを追加する方が(私にとっては)望ましいです...だから、

ユーザーを設定にリンクする新しいテーブルを追加してから、設定用のテーブルを追加します...

これらのもの:notify_if_user_follows_me、notify_if_user_messages_me、notify_when_friend_posts_new_stuff。その後、ID を持つ行挿入になり、いつでも参照して、スキーマを変更せずに必要に応じて拡張できます。

于 2011-08-03T12:13:08.130 に答える