关于好友添加功能的数据库设计。

失落的code 2011-05-11 03:51:23
网上搜了下,发现基本上都是这样一种方法,一张users表,存放用户信息,字段:UID(主键);username(标识名);其他字段……,一张friends表,ID(主键);UID(外键);friendID(外键);其他字段。
这样的话,也就是说每个用户的每个好友在friends表中都有一条记录,拿QQ来说,每个用户300个好友的话,friends会过于庞大,1:300,有没有更好的设计方法?(据说可以存储为xml?如何实现?)
...全文
368 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
失落的code 2011-05-11
  • 打赏
  • 举报
回复
求一个相对高效的设计。。。。。。
--小F-- 2011-05-11
  • 打赏
  • 举报
回复
在查询的时候XML效率不会太高
失落的code 2011-05-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 haiwer 的回复:]

XML是可以存储,问题是

你先要想想尼存储这些数据的目的,我想这些数据是有用的,而使用时需要效率很高,用XML或者字符串,如果需要从好友查找本身(倒过来查),或者需要关联出多层关系,就会很麻烦,而且性能会成为瓶颈。

存储结构的选择取决于数据的应用。
[/Quote]

书上说xml字段性能更好……

通过将一个XML Schema集与XML类型的字段相互绑定,还可以对存储在字段中的XML数据执行类型校验、数据插入和修改等操作,从而优化数据库的存储和查询性能。SQL Server 2005为此提供了一些专用于管理服务器中Schema的DDL 语句。

除此之外,用户甚至可以使用XQuery语句对XML字段中的数据进行检索(例如,查询哪些元素或属性中具有指定值的XML文档的字段等)。采用这种方式可以有效地提高数据库查询的效率,因为在使用XML数据类型的字段后,查询时就可以省去大量表扫描和字段扫描的操作。

by_《SQL Server 2005数据库管理高级教程》
昵称被占用了 2011-05-11
  • 打赏
  • 举报
回复
XML是可以存储,问题是

你先要想想尼存储这些数据的目的,我想这些数据是有用的,而使用时需要效率很高,用XML或者字符串,如果需要从好友查找本身(倒过来查),或者需要关联出多层关系,就会很麻烦,而且性能会成为瓶颈。

存储结构的选择取决于数据的应用。

王向飞 2011-05-11
  • 打赏
  • 举报
回复
<friendid>1</friendid><friendid>2</friendid><friendid>3</friendid><friendid>4</friendid>

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧