1

Yiiを使用して、プロフィール、イベントページ、グループスレッドなど、サイト全体に「コメント」を表示するプライベートソーシャルネットワークを構築しています。ユーザーが投稿すると、そのコンテンツの表示を選択できるようになります。なので:

  • 登録ユーザーのみ
  • 友達のみ
  • カスタム(友達の特定のリスト)

私はこれを速度のためにモデル化する方法を理解しようとしています。MySQLを使用して、コメントテーブルのバイナリの「is_secure」フィールドに設定を書き込むことを検討しました。trueの場合は、comment_id、user_id、group_idの3つの列を持つテーブルに移動します。グループ(group_id)は、ユーザーのグループ(登録ユーザー、友達)用です。カスタムは、選択されたユーザーごとに1つの行を作成します(user_id)。

このテーブルは巨大になるので(おそらくコメントごとに数十行)、NoSQLを使用することはここで取得のみを検討する価値があるのか​​、それともこれをモデル化するためのより良い方法があるのか​​疑問に思います。

本当にありがとう!

4

1 に答える 1

1

データベースの「フラグ」と同様の質問。関連する SO の質問を検索します。

IF true/falseフィールドを使用する 代わりに、(誰でも) 、、、、のis_secure1 ビット フィールドを追加するだけです。(前のテーブルから) と(複数の行)を持つカスタム リストを保持する別のテーブルを追加します。そうすれば、 を使用した単一のクエリで、ページをユーザーに表示するかどうかを決定できます。必要に応じて、カスタムはカンマ区切りのリスト (char フィールド) にすることもできますが、サイズ制限が問題になる場合があります。コンマを含む 3 文字のフレンド ID を想定すると、各 255 文字のフィールドには 64 人のフレンドを含めることができます。read_allregisteredfriendscustomcomment_idfriend_idLEFT JOIN on custom_friends_list_for_comments

于 2012-11-16T07:14:36.800 に答える