0

私は、人々が自分のアカウントで登録してログインできるAndroidアプリに取り組んでいます。この情報は、ある種のデータベースに保存されます。したがって、各行が新しいユーザーであるテーブルがあります。テーブルには、ユーザーごとに 3 つの列があります。ユーザー名、パスワード (もちろん暗号化されています)、友人です。はい、ユーザーは他のユーザーと友達になることができます。

私が持っていた質問は、友人の列でこのようなテーブルを実装する際の業界標準は何ですか.

各ユーザーには一意の ID があるため、各ユーザーの友達の列は、ユーザー ID のコンマ区切りのリストにすることができると考えていました。このようなもの:

ID    Username    Password    Friends
1       blah        ****        2,3
2       blah1       ****        1
3       blah2       ****        1

しかし、私が考えている方法は非常に大ざっぱに聞こえます.... Facebookのような人がデータベースをセットアップして友達を保存するにはどうすればよいですか. または、Facebook が複雑すぎる場合...友達を保存するためにデータベースをセットアップする最良の方法は?

4

2 に答える 2

1

そもそも、あなたが保存した方法で友人の列をテーブル内に保存しません。多対多の関係は通常、以下のように新しいテーブルにまとめて格納されます。

 ID               FRIENDS

 1                  2 

 1                  3 

 2                  1

 3                  1

テーブルの主キーは(ID, FRIENDS)、1 対多ではなく、1 対 1 のマッピングです。

于 2013-10-24T04:11:14.473 に答える
0

多対多の関係を持つ友人と呼ばれるテーブルを使用するので、あなたの例では

        USER TABLE                         FRIEND TABLE

    ID    Username    Password              ID1    ID2
    1       blah        ****                 1      2
    2       blah1       ****                 1      3
    3       blah2       ****        

より効率的にするには、(ID1,ID2) と (ID2,ID1) の両方の方向にインデックスを追加します。これにより、友情を追加できるのは 1 回だけであり、(1,2) と (2,1) を追加する必要はありません。

于 2013-10-24T04:22:11.740 に答える