用户表信息:userid、用户名等基本信息...
设计用户好友关系表:
create table 'connect_userfriend_id'
pk_id id (int) 主键,自增
userid1 (int) 帐号id
userid2 (int) 帐号id
注意:
1) userid1->userid2 和 userid2->userid1 是一样的记录,不要重复添加
2) 为了快速判断两个人是不是好友,可以在程序层插入数据前加一个限制 userid1 < userid2
3) 为了快速得到一个人的好友列表,查询时用 UNION ALL,代替or,会更高性能,因为取可能重复的值所以不能用UNION
4) 如果为了再高效,加入缓存层(Redis 或 Memcached)
查询用户id为2的好友id集:
select userid2 from connect_userfriend_id where userid1=2
union all
select userid1 from connect_userfriend_id where userid2=2;
写的比较粗略,希望分享的东西对大家有用!
这篇博客探讨了如何在MySQL中设计用户与好友关系表,强调了避免重复记录、优化查询性能以及利用缓存(如Redis或Memcached)提升效率的方法。内容包括用户基本信息表和好友关系表的设计要点。

442

被折叠的 条评论
为什么被折叠?



