关于新浪微薄好友分组设计
最近新浪微薄很流行,对其中的一些数据库设计希望大家可以探讨下。
微薄好友设计:
新浪微薄好友可以创建分组,好友可以属于我设置的几个分组中。
一般我们设计好友都是UserId(用户ID)、FriendId(朋友ID)、CreatedDateTime(创建时间)、
Status(好友之间的状态)、GroupId (分组编号)
表设计一般为:
UserId,FriendId,CreatedDateTime,GroupId,Status,之类的,一般一个好友只属于一个分组中。
但在新浪微薄中好友分组一个好友可以属于几个分组中,即GroupId可能为(2,5,6,7,9),即几个分组组成的字符串表示。
如果这样设计,在查询好友分组的时候就需要拆分GroupId,从而带来一定性能问题。
请教2个问题:
1、关于新浪微薄这样的好友分组mysql中设计问题?如何设计?希望能够给出性能最佳的方式!
2、mysql中由于没有函数返回表,拆分GroupId(2,5,6,7,9),然后和通过拆分的编号和另外一个表进行JOIN的问题,mysql中拆分字符串性能最佳的方式?
以上问题希望高手能够指教。