24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1781  |  回复: 12

jojo_0214

铜虫 (初入文坛)

[求助] 求助大家一道2010百度实习笔试题(有关数据库)

系统设计题
百度打算开发一个投票系统,它提供创建、查看、参与和管理投票功能。用户创建一个投票时,有如下信息可知:创建者、标题、各选项内容、截止时间、可投票数。另外,该投票是否对所有用户可见继承于创建者的个性设置。查看一个投票时,除了显示上述信息外,还需要显示每个选项的投票数。在截止时间之前,用户可以参与投票。管理投票功能为创建者提供删除一个投票和调整进行中投票截止时间的功能。预计该投票系统会很受用户欢迎,每天可望创建超过1万个投票。每天浏览次数达数百万,并且有约一百万人次参与投票。经验还表明,用户更喜欢新近的内容。实习生小A针对上述需求,打算用数据库来实现这个投票系统,他给出了数据库的表设计如下:
user_info:uid        name           …        visible

vote_info:vid        uid        title           options        counts        close_time        max        visible

红色为主键
问题:
1、小A的设计存在什么问题,如何改善?
2、如果想增加一个功能,即每个用户对每个投票只能投一次。如何设计?
3、系统运行了较长一段时间之后,用户反馈使用中速度变慢。请分析可能的原因,并提出解决办法。
4、请完整给出新系统下各功能的实现流程。涉及数据库查询的,请给出SQL语句。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

计算机小屁
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

lywey

银虫 (小有名气)

★ ★
余泽成(金币+2): 鼓励参与讨论! 2011-05-05 18:30:13
你所给的题目不完整,我帮你修改一下

6楼2011-05-05 14:32:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

xqwbx163

银虫 (小有名气)

【答案】应助回帖

★ ★
余泽成(金币+2): 欢迎新虫,常来程序语言版! 2011-05-05 12:06:36
新人飘过,
主键设置
限制IP,以IP为标准。
系统运行时间过长,用户反映速度变慢,有可能是在查询语言结果上出了问题,在设计数据库时。从头到尾的搜索,速度会变慢。可用引索。
2楼2011-05-05 12:01:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jojo_0214

铜虫 (初入文坛)

引用回帖:
Originally posted by xqwbx163 at 2011-05-05 12:01:38:
新人飘过,
主键设置
限制IP,以IP为标准。
系统运行时间过长,用户反映速度变慢,有可能是在查询语言结果上出了问题,在设计数据库时。从头到尾的搜索,速度会变慢。可用引索。

是不是用户在限制对所有用户开放投票时也设计不合理,只有0/1即全部开放,或只有对自己开放,是不是这也是设计不合理??
计算机小屁
3楼2011-05-05 12:35:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xqwbx163

银虫 (小有名气)


余泽成(金币+1): 鼓励参与讨论! 2011-05-05 18:29:28
引用回帖:
Originally posted by jojo_0214 at 2011-05-05 12:35:17:
是不是用户在限制对所有用户开放投票时也设计不合理,只有0/1即全部开放,或只有对自己开放,是不是这也是设计不合理??

应该没有,投票选择本就可以对所有的用户开放。
4楼2011-05-05 13:38:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lywey

银虫 (小有名气)

【答案】应助回帖


jojo_0214(金币+5): 2011-05-05 17:11:09
余泽成(金币+1): 鼓励参与讨论! 2011-05-05 18:29:18
vote_info的主码有问题,因为vid无法决定uid(一般一个创建者可以创建若干投票),同理如果满足1NF,那么vid无法决定option
因此主码至少vid+uid+option
如果这样,那么close_time,max等就部分函数依赖于主码,即该模式仅仅是1NF,存在数据冗余,插入删除修改异常
5楼2011-05-05 14:17:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lywey

银虫 (小有名气)

引用回帖:
Originally posted by lywey at 2011-05-05 14:17:53:
vote_info的主码有问题,因为vid无法决定uid(一般一个创建者可以创建若干投票),同理如果满足1NF,那么vid无法决定option
因此主码至少vid+uid+option
如果这样,那么close_time,max等就部分函数依赖于主码, ...

应该如下分析:
一个投票只被一个用户创建,因此uid无法决定vid,但是vid可以决定uid

但是如果需要满足1NF,option和count的取值应该是原子的,那么vid无法决定option
因此主码vid+option
再进一步close_time,max等就部分函数依赖于主码Vid
7楼2011-05-05 15:13:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

文俊点点

木虫 (著名写手)

【答案】应助回帖


余泽成(金币+1): 鼓励参与讨论! 2011-05-05 18:30:33
用户应该是不可见的,投票有可见和不可见的情况。
增加一个键在用户表中,设置为0,投过票后为1,是1的不能再投票。
由于数据库中的内容增加,导致检索的规模扩大,速度下降。由于用户对最近的内容比较关注,可以根据时间进行筛选。减小检索量。
这是你所拥有的时间·····这是你所能改变的生活·········
8楼2011-05-05 17:58:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nebulaly

木虫 (著名写手)

【答案】应助回帖


微尘、梦想(金币+1): 谢谢参与! 2011-05-07 21:28:16
1、表结构太简单了;
2、唯一性约束;
3、做分区,如果第一步就设计多张表,可能就不会产生问题;
4、不用数据库可能更好
9楼2011-05-06 22:29:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jojo_0214

铜虫 (初入文坛)

引用回帖:
Originally posted by nebulaly at 2011-05-06 22:29:51:
1、表结构太简单了;
2、唯一性约束;
3、做分区,如果第一步就设计多张表,可能就不会产生问题;
4、不用数据库可能更好

从题目来说,得用数据库的知识啊
计算机小屁
10楼2011-05-06 22:50:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 jojo_0214 的主题更新
信息提示
请填处理意见