検索

ホームページ  >  に質問  >  本文

mysql - 类似QQ的好友关系表是怎么设计的?

请问一下类似QQ的好友关系表是怎么设计的?
难道只是简单的id,userId,friendId吗?

迷茫迷茫2820日前3373

全員に返信(12)返信します

  • 一个人流浪

    一个人流浪2018-06-13 16:52:23

    グループ化フィールドも必要です

    返事
    0
  • 怪我咯

    怪我咯2017-04-17 14:48:10

    実際、物事を複雑にしすぎる必要はありません。必要に応じてゆっくりと進めてください。

    これは私のフォロー機能のテーブル構造です。参照してください。

     ユーザー関係:
        タイプ: オブジェクト
        プロパティ:
          ID:
            型: 整数
            説明: ID
          ユーザーID:
            型: 整数
            説明: ユーザー ID
          ターゲットユーザーID:
            型: 整数
            説明: 対象ユーザー ID

    返事
    0
  • 黄舟

    黄舟2017-04-17 14:48:10

    非リレーショナル データベース

    返事
    0
  • 阿神

    阿神2017-04-17 14:48:10

    ここでデザインするときにグループの機能を考慮し、2 人の友人関係もグループに変換しました。

    ページ全体に 3 つのテーブルが必要です

    1 つはユーザー テーブルです
    1 つはグループ テーブルです
    もう 1 つはユーザーとグループの対応テーブルです

    3 つのテーブルを通じて決定

    返事
    0
  • ringa_lee

    ringa_lee2017-04-17 14:48:10

    私の知る限り、Weibo の注目はこのように設計されています。

    返事
    0
  • 迷茫

    迷茫2017-04-17 14:48:10

    以前、テーブルの設計に関する質問を見たことがあります。ユーザー テーブルでは、ストレージをカンマで区切るには 1 つのフィールドを使用するか、ストレージを関連付けるには 2 つのテーブルを使用しますか?実現可能

    返事
    0
  • PHPz

    PHPz2017-04-17 14:48:10

    これで十分です

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-17 14:48:10

    しかし、クエリも問題です。redis はこのタスクに非常に適しています。

    返事
    0
  • 高洛峰

    高洛峰2017-04-17 14:48:10

    双方向の友人であるかどうかを示すフラグ フィールドを追加できるかもしれません

    返事
    0
  • ringa_lee

    ringa_lee2017-04-17 14:48:10

    多対多の関係である必要があります。
    ユーザーは複数の友達を持つことができます。
    複数のユーザーから友達として追加することもできます。
    リレーショナル データベースにおける多対多の関係は、通常、中間テーブルを使用して実装されます。
    現時点では、中間テーブルには通常、ユーザー ID とフレンド ID のみが格納されます。ただし、業務実装の便宜上、中間テーブルに検証パス、フレンドグループID、ソート番号などを追加することができます。
    この多対多中間テーブルと一般的な多対多中間テーブルの違いは、多くの場合、この関連付けテーブル自体がそれ自体です。つまり、ユーザー テーブルとユーザー テーブル間の多対多の関係です。

    返事
    0
  • キャンセル返事