首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保存数据库标准

保存数据库标准
EN

Stack Overflow用户
提问于 2013-10-24 11:53:42
回答 2查看 79关注 0票数 0

我正在开发一个Android应用程序,人们可以用他们的账户注册和登录。这些信息将被保存到某种数据库中。因此将有一个表,其中的每一行都是一个新用户。对于每个用户,该表将有3列:用户名、密码(当然是加密的)和朋友。所以,是的,用户可以加其他用户为好友。

我的问题是,实现这样一个带有friends列的表的行业标准是什么。

我在想,因为每个用户都有一个惟一的ID,所以每个用户的friends列可以只是一个逗号分隔的用户ID列表。如下所示:

代码语言:javascript
复制
ID    Username    Password    Friends
1       blah        ****        2,3
2       blah1       ****        1
3       blah2       ****        1

但在我看来,像facebook这样的人会建立他们的数据库来存储好友,这听起来像是超级sketchy....how。或者如果facebook太过了,complicated...how是设置我的数据库来存储朋友的最好方式?

EN

回答 2

Stack Overflow用户

发布于 2013-10-24 12:11:14

首先,我不会像您存储的那样在表中存储friends列。多对多关系通常存储在一个新的表中,如下所示。

代码语言:javascript
复制
 ID               FRIENDS

 1                  2 

 1                  3 

 2                  1

 3                  1

表的主键是(ID, FRIENDS),即一对一的映射,而不是一对多。

票数 1
EN

Stack Overflow用户

发布于 2013-10-24 12:22:12

我将使用一个具有多对多关系的名为friends的表,因此在您的示例中

代码语言:javascript
复制
        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)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19556601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档