数据库分析:开心网的会员分组数据库设计--我的不成熟的想法

SolomonTom 2009-11-21 10:51:34

好友表

分组表

用户分组表


1.所有的分组名称放在同一个数据库中,当会员添加自己的分组时,首先查询分组库中是否包含,如果包含,则返回此分组的id,在
friendTypeconnection表中插入一条数据,表示该用户添加此分组。如果库中不包含,就在分组库中插入分组,返回刚插入的数据的id,
然后在friendTypeconnection表中插入一条数据,表示该用户添加此分组。
2.删除分组时先判断该分组是否有好友,如果有,则先提示把好友移走,否则不能删除。确定删除后删除friendtypeconnection中对应的数据
3.修改时先对分组库进行查询,如果有则返回id,如果没有则添加到分组库,返回id修改friendtypeconnection数据库相应的一条数据
4.每次注册会员时在friendTypeconnection表中插入与新会员对应的默认分组



也许是资质的问题,我最多也就可以想到这一步了,麻烦各位大哥帮帮我!
...全文
344 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
qingyun524 2010-07-28
  • 打赏
  • 举报
回复
我也遇到这个问题了,本想能找到答案,可惜啊!
SolomonTom 2009-11-28
  • 打赏
  • 举报
回复
我看我要结贴了
gaojia2004 2009-11-23
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 solomontom 的回复:]
在sql-server中,nvarchar类型的数据和int类型的数据在占用空间和查询速度上有区别吗?
[/Quote]

Nvarchar(NUM)一般占用的空间都比INT多,INT 占4个字节 而Nvarchar(N)占2N个自己 同样多的记录 他们站的页面数不同 导致扫描成本也不一样
gaojia2004 2009-11-23
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 dawugui 的回复:]
不知道我的理解对不对?

1、人员表
id name
1  '小P梁'
2  '小F'
3  '石头'
4  '剪剪'
5  '影子'

2、好友表
id peo1_id peo2_id
1  1      2
2  2      1
3  1      3
4  3      1
...

3、分组表(还可以加个分组的名称,如果需要,可以自己加上,或者通过分组名称表来关联)
id px peo_id
1  1  1
2  1  2
3  1  3
4  2  1
5  2  2
6  2  3


[/Quote]


我觉得好友表应该FK到分组表(一个好友属于一个分组)和用户表(好友也属于用户) 分组表外键关连用户表(一个组属于一个用户)

当然 考虑业务逻辑的话 适当的冗余数据可以加快查询速度
SolomonTom 2009-11-23
  • 打赏
  • 举报
回复
在sql-server中,nvarchar类型的数据和int类型的数据在占用空间和查询速度上有区别吗?
duanzhi1984 2009-11-23
  • 打赏
  • 举报
回复
感觉有点冗余,不过,适当的冗余是有必须要的,那也要看以后的业务数据规则是怎么样的。

比如以后的数据量特别大的话,也要考虑性能的问题。
dawugui 2009-11-23
  • 打赏
  • 举报
回复
不知道我的理解对不对?

1、人员表
id name
1 '小P梁'
2 '小F'
3 '石头'
4 '剪剪'
5 '影子'

2、好友表
id peo1_id peo2_id
1 1 2
2 2 1
3 1 3
4 3 1
...

3、分组表(还可以加个分组的名称,如果需要,可以自己加上,或者通过分组名称表来关联)
id px peo_id
1 1 1
2 1 2
3 1 3
4 2 1
5 2 2
6 2 3

--小F-- 2009-11-23
  • 打赏
  • 举报
回复
去掉分组表
把里面的字段写到前两个表去
SolomonTom 2009-11-23
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 fredrickhu 的回复:]
这个太强了 到时候在使用的时候数据冗余大 效率不会太高
[/Quote]
那有没有更好的解决办法?这样的冗余真的会很大很大!
SolomonTom 2009-11-22
  • 打赏
  • 举报
回复
帮帮我吧!
--小F-- 2009-11-22
  • 打赏
  • 举报
回复
这个太强了 到时候在使用的时候数据冗余大 效率不会太高
claro 2009-11-22
  • 打赏
  • 举报
回复
需要关注表数据在后期读写时的性能表现。
laker_914 2009-11-22
  • 打赏
  • 举报
回复
关注中.........
syw_java 2009-11-22
  • 打赏
  • 举报
回复
看看先
阁楼上的伟哥 2009-11-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 solomontom 的回复:]
沉的太快了!
[/Quote]
帮顶
SolomonTom 2009-11-21
  • 打赏
  • 举报
回复
沉的太快了!
SolomonTom 2009-11-21
  • 打赏
  • 举报
回复
这样的库会产生很大的数据冗余。。。。。
ChinaJiaBing 2009-11-21
  • 打赏
  • 举报
回复
关注...
dawugui 2009-11-21
  • 打赏
  • 举报
回复
内容不少,先顶再看.
icelovey 2009-11-21
  • 打赏
  • 举报
回复
学习!看题目先.
加载更多回复(2)

27,581

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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