Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 保存数据库标准_Java_Android_Database - Fatal编程技术网

Java 保存数据库标准

Java 保存数据库标准,java,android,database,Java,Android,Database,我正在开发一个安卓应用程序,人们可以用自己的帐户注册和登录。这些信息将保存到某种数据库中。因此将有一个表,其中每一行都是一个新用户。该表将为每个用户提供3列:用户名、密码(当然是加密的)和好友。因此,是的,用户可以成为其他用户的朋友 我的问题是,在使用friends列实现这样的表时,行业标准是什么 我在想,因为每个用户都有一个唯一的ID,所以每个用户的friends列可以是一个以逗号分隔的用户ID列表。大概是这样的: ID Username Password Friends 1

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

我的问题是,在使用friends列实现这样的表时,行业标准是什么

我在想,因为每个用户都有一个唯一的ID,所以每个用户的friends列可以是一个以逗号分隔的用户ID列表。大概是这样的:

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

但我的想法听起来非常粗略……像facebook这样的人是如何建立数据库来存储朋友的。或者如果facebook太复杂了…如何设置我的数据库来存储朋友呢

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

 ID               FRIENDS

 1                  2 

 1                  3 

 2                  1

 3                  1

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

我将使用一个名为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)

您可以通过编辑描述性标题来澄清您的问题,省略与密码无关的详细信息,并避免使用“行业标准”这一术语(是正式/官方文件,而您似乎在询问常见做法)。可能是问题的副本