聊天工具的数据库设计

现在的聊天工具很多,用户也很多,拿QQ来说,说腾讯是怎么保持QQ好友关系的,他们的表是怎么建的?
如果是一张关系表,一个QQ用户最多可以加500个好友,那么那数据量得多大啊?
总不可能给每个用户一张表把?
哪位大虾有相关设计经验的或业内人士指点一下啊

对于关系数据库,你可以设一个这样的字段,这个字段里存放了李四的所有好友,每个好友以“,”分隔,
对于非关系数据库,比如说健值数据库,你可以使用一个大型的HASH表来存放,李四的所有好友以一个链接的方式串起来
比如:
linker表示链接
hash(李四)=linker(王五、张三、黄光、李明)

2个表

一个关系表
userid friendid
1 2
1 3
1 4
2 3
3 1
3 4

一个用户信息表
userid username
1 张三
2   李四
3 王五
4 刘光明

是不是和腾讯游戏一样,分区管理的。
你是上海的你在别的地方登录时会在把你在上海的数据先copy过去..