主题:一道数据库题目
			
 clever101
				 [专家分:1310]  发布于 2005-10-26 18:07:00							
			某高校要建立一个关于系、学生、班级、学会等信息的关系数据库。其中有两个表
是学生表、学会表。每个学生可参加若干学会,每个学会有若干学生。要求建立各表,
并指出主码。
    标准答案中有两个表:
学会(学会号,学会名,成立年份,地点,人数)主码为学会号
参入学会(学号,学会号,入会年月) 主码为学会号、学号。
    我觉得学会号有点多余,使用学会名作主码不行吗?
						
					 
		
			
回复列表 (共13个回复)
		
								
				沙发
				
					
59030777 [专家分:3220]  发布于 2005-10-26 20:49:00				
				不行! 肯定不行!!唯一性怎么确定呀!!
							 
						
				板凳
				
					
clever101 [专家分:1310]  发布于 2005-10-26 22:45:00				
				我觉得学会名就是唯一的
							 
						
				3 楼
				
					
♀の○缘づ [专家分:10]  发布于 2005-11-17 21:28:00				
				不可以啊,学会名也许有重复的~~~~~[em8]
							 
						
				4 楼
				
					
zhangheng77 [专家分:5510]  发布于 2005-11-20 20:29:00				
				数据少的时候是不会有重复的,但是如果数据很多就很有可能有重复
比如人的名字,是不能作为关键字的,一个班的时候可能没有重复,但人多了,就有了。
所以名字一般是不作关键字的
							 
						
				5 楼
				
					
dragondht [专家分:40]  发布于 2005-11-28 16:58:00				
				这个不能完全根据实际来判断,现实中也许你没有见过重名的学会,但理论上可能存在重名问题.
但学会号就不同了,就像学生的学号一样,肯定不会重.
这就是唯一性.
							 
						
				6 楼
				
					
角逐 [专家分:20]  发布于 2005-12-08 13:03:00				
				因为有同名的怎么办?比如,001(学会号) 杨话;002(学会号)杨话
到时候你怎么区别,只有学会号是唯一的!
							 
						
				7 楼
				
					
wszjwowo [专家分:140]  发布于 2005-12-13 08:44:00				
				001(学会号)×××和002(学会号)×××应该只用来区分某人参加了哪个学会,而不是用来区分×××和×××是不是一个人,要区分人的话还是从学号区分。学会主码为学会号,参加学会主码为学号。这样不行码?
							 
						
				8 楼
				
					
clever101 [专家分:1310]  发布于 2005-12-13 09:58:00				
				你要考虑一个学生可以参加多个学会,这样在参加学会表学号就不是唯一的了。
							 
						
				9 楼
				
					
wszjwowo [专家分:140]  发布于 2005-12-14 22:56:00				
				那就看你到底要区分什么了,要区分学生的话就看学号,要区分学会的话就看学会号。只要学生表和学会表分别以学号和学会号为主码,就不会出现不唯一的情况啊!在参加学会表中会出现学号的重复,但这个重复不是不唯一,因为这个重复是指同一个对象(学生)。之前说的重复是指不同对象有了相同的主码(两个不同的学会有相同的名称,又把名称设为主码,这时就重复了)
							 
						
				10 楼
				
					
wszjwowo [专家分:140]  发布于 2005-12-14 22:58:00				
				而此时的重复是因为一个学生选了多个学会,不影响唯一性
							 
									
			
我来回复