像QQ的好友列表在数据库如何实现比较好?现在我能想到有三种方法.
一.每创建一个用户.自动创建一个该用户的好友用户表.每一行的记录是一个好友记录.
二.做一个Frient的表,表中有两列,第一列UID是用户ID,第二列FID是对应该用户的好友
三,在用户信息的表中,有一个字段10000长度的varchar 里边用 ', '号分割各个好友的ID
那种方法更好一些?或者有其他的方法..
------解决方案--------------------
如果总人数比较少,数万用户的话,每人数十名好友,用第二种方案似乎不错,也方便和其他表进行关联,例如好友详细信息。
但如果上千万的用户,平均每个人好友数量为100,用第二种方案不知道是否合适。个人感觉此时似乎第三种方案更合适,分拆字符串组成好友的基本信息看似更方便。如果需要某人详细信息可以单独查询。
当然无论哪种方案,索引什么的是必然需要的。
我没有对这种大数据量操作的实际经验,无法确认那种更合适,只是个人感觉。