2

私は別の開発者と協力して、Facebook のような友達リクエストを作成できるソーシャル ネットワーキング サイトのようなものを開発しています。ただし、彼は各ユーザーの友達をカンマ区切りの値として保存しています。

user_id | user_friends
101     | 102,103,105

これは非常に非効率的でエラーが発生しやすいと確信しています。私は個人的にリレーショナル データベース モデルを使用し、列を持つ別のテーブルを作成します。friendship_id (PRIMARY KEY), friender_id and friended_id.

私は正しいですか?そして、私のスタンスを支持するためにどのような議論をする必要がありますか? 乾杯

4

3 に答える 3

2

あなたが正しい。

彼のシステムでは、フレンドシップ リクエストのステータス (キャンセル、保留中、承認済み) をどのように処理しますか?

user_friends 文字列の解析は面倒で、複雑なデータの取得に結合を使用することはできません。

于 2012-12-17T12:00:51.363 に答える
1

もう 1 つ理由を追加します。2 人のユーザーの友人間の比較は、コンマ区切りのレコードでは面倒です。たとえば、友人同士の共通点は、データベースの外部で処理する必要があります。つまり、すべてのデータを取得してから比較する必要があります。データベースを使用する場合、データ転送は主要なボトルネックの 1 つです。

もう 1 つの理由は、リレーショナル データベースでカンマ区切りのレコードを使用することです。しかし、その理由は事実ではないかもしれません...

于 2012-12-17T12:19:40.347 に答える
1

カンマ区切りの使用は問題ありませんが、検索を管理するのが難しいため、FIND_IN_SET を使用する必要があり、更新時にはもう少し作業を行う必要があります。代わりに、他の方法を使用するのは簡単です。好きなだけリレーションシップを簡単に追加できます。もちろん検索も簡単です。

于 2012-12-17T12:02:46.487 に答える