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)一对一映射而不是一对多映射。

于 2013-10-24T04:11:14.473 回答
0

我会使用一个名为 Friends 的表,具有多对多的关系,所以在你的例子中

        USER TABLE                         FRIEND TABLE

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

为了更有效地在 (ID1,ID2) 和 (ID2,ID1) 两个方向上添加索引,因此您可以只添加一次友谊,而无需添加 (1,2) 和 (2,1)

于 2013-10-24T04:22:11.740 回答