好友体系里边的好友怎么存储在数据库呢?

自己做一个带有好友体系的软件,数据库中存储一个用户的好友时是用一个字段来存储
该用户的所有好友么?在Java中我用String类型的字段来唯一标记每一个用户,那好友
字段记成String [] ,数据库里咋存呢,varchar类型肯定还得短呢

正好拿楼主这个问题说一下数据库设计需要满足的三范式


name                        friendsName

 张三                         李四,王五,赵六

类似这样的数据库设计违反了数据库设计的第一范式

数据库设计第一范式是:数据库表中的所有字段值都是不可分解的原子值

改进一下

table_friends


   id                       userId                        friendId

   1                            1                                  2

   2                            1                                  3

   3                            1                                  4

table_users


   id                       userName            

   1                             张三                

   2                             李四                

   3                             王五                

   4                             赵六                

这样搭建数据库的可扩展性最好,万一有2个人叫张三呢,通过id号可以区别,万一张三改名叫张三丰了呢,只用修改table_user的一条记录即可

数据库用一个字段表示数组,字段类型为文本类型。程序存入数组到数据库的时候,就将String[]里面的数据,拼接成一个字符串在存入到数据库中那个字段就好了!

直接用一个表存储好友关系 里边有 用户ID,好友ID,如果需要可以再加个这个表的ID

可以存放好友id,然后用分隔符拼接成字符串等,存入一个数据库字段。如果是nosql数据库 就简单。它本身就支持数组类型。好友列表直接作为用户的一个属性列表

存放一个用户的好友,这个应该是一个一对多的关系,需要单独建立一个表然后用好友ID,标明相互关系即可