我正在开发一个Android应用程序,人们可以用他们的账户注册和登录。这些信息将被保存到某种数据库中。因此将有一个表,其中的每一行都是一个新用户。对于每个用户,该表将有3列:用户名、密码(当然是加密的)和朋友。所以,是的,用户可以加其他用户为好友。
我的问题是,实现这样一个带有friends列的表的行业标准是什么。
我在想,因为每个用户都有一个惟一的ID,所以每个用户的friends列可以只是一个逗号分隔的用户ID列表。如下所示:
ID Username Password Friends
1 blah **** 2,3
2 blah1 **** 1
3 blah2 **** 1但在我看来,像facebook这样的人会建立他们的数据库来存储好友,这听起来像是超级sketchy....how。或者如果facebook太过了,complicated...how是设置我的数据库来存储朋友的最好方式?
发布于 2013-10-24 12:11:14
首先,我不会像您存储的那样在表中存储friends列。多对多关系通常存储在一个新的表中,如下所示。
ID FRIENDS
1 2
1 3
2 1
3 1表的主键是(ID, FRIENDS),即一对一的映射,而不是一对多。
发布于 2013-10-24 12:22:12
我将使用一个具有多对多关系的名为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)
https://stackoverflow.com/questions/19556601
复制相似问题