回 帖 发 新 帖 刷新版面

主题:一道数据库题目

某高校要建立一个关于系、学生、班级、学会等信息的关系数据库。其中有两个表
是学生表、学会表。每个学生可参加若干学会,每个学会有若干学生。要求建立各表,
并指出主码。
    标准答案中有两个表:
学会(学会号,学会名,成立年份,地点,人数)主码为学会号
参入学会(学号,学会号,入会年月) 主码为学会号、学号。
    我觉得学会号有点多余,使用学会名作主码不行吗?

回复列表 (共13个回复)

沙发

不行! 肯定不行!!唯一性怎么确定呀!!

板凳

我觉得学会名就是唯一的

3 楼

不可以啊,学会名也许有重复的~~~~~[em8]

4 楼

数据少的时候是不会有重复的,但是如果数据很多就很有可能有重复

比如人的名字,是不能作为关键字的,一个班的时候可能没有重复,但人多了,就有了。
所以名字一般是不作关键字的

5 楼

这个不能完全根据实际来判断,现实中也许你没有见过重名的学会,但理论上可能存在重名问题.
但学会号就不同了,就像学生的学号一样,肯定不会重.
这就是唯一性.

6 楼

因为有同名的怎么办?比如,001(学会号) 杨话;002(学会号)杨话
到时候你怎么区别,只有学会号是唯一的!

7 楼

001(学会号)×××和002(学会号)×××应该只用来区分某人参加了哪个学会,而不是用来区分×××和×××是不是一个人,要区分人的话还是从学号区分。学会主码为学会号,参加学会主码为学号。这样不行码?

8 楼

你要考虑一个学生可以参加多个学会,这样在参加学会表学号就不是唯一的了。

9 楼

那就看你到底要区分什么了,要区分学生的话就看学号,要区分学会的话就看学会号。只要学生表和学会表分别以学号和学会号为主码,就不会出现不唯一的情况啊!在参加学会表中会出现学号的重复,但这个重复不是不唯一,因为这个重复是指同一个对象(学生)。之前说的重复是指不同对象有了相同的主码(两个不同的学会有相同的名称,又把名称设为主码,这时就重复了)

10 楼

而此时的重复是因为一个学生选了多个学会,不影响唯一性

我来回复

您尚未登录,请登录后再回复。点此登录或注册