我有一个迷你的注册系统。
有教授表、科目表、学生表、年级表和有学生的科目表。
现在,当你添加一个教授时,你输入的是教授ID.。但是还有一个profNO。profNo是主键。由于您可以向该教授添加更多科目,因此profNo将递增,但ID保持不变。
问题:现在,我想设置一个限制,当一个人想要添加一个教授时,如果他输入一个已经存在的教授ID,将会出现一个错误,说“教授ID已经存在”,但教授ID不是唯一的。
现在,看看这张照片。具有不同profNo的相同教授ID。这是因为他们的主题。向教授添加科目时,教授ID会重复。但是当你添加一个教授时,有没有可能当你输入一个现有的ID时,就会出现一个错误呢?sample http://sphotos-e.ak.fbcdn.net/hphotos-ak-ash3/578472_162759700529875_718824031_n.jpg
发布于 2012-10-12 22:42:52
是的,你可以按你的要求去做。只需在插入新教授之前添加一个简单的检查即可。
提交新教授时的伪代码:
if profID already exists (using a simple SQL query to check)
allow the insert and continue
else
don't insert, show a message to the user "That professor ID already exists"
endif
然而,当一个教授有多个科目时,如果你一遍又一遍地重复教授的详细信息,这似乎不是一个非常符合逻辑的系统。
考虑以下DB结构:
表: professors
字段:id
、firstname
、lastname
、gender
表: subjects
字段:id
、professorid
、subjectname
、subjectcode
这样,您只需在professors
中为每个教授维护一条记录,并为subjects表维护相同的记录。当您插入新科目时,您将填充链接回professors
表的教授ID,而无需复制数据。
这将是一个简单的结构,使您的数据库更有效率,现在根据您的系统需要的复杂程度,您可能需要进一步规范化它。例如,如果一个科目可以有多个教授,那么您不应该在subject表中包括教授ID,而应该有一个包含字段professorid
,subjectid
的新表professor_subject_association
,在该表中,您可以将多个教授链接到科目。
发布于 2012-10-12 21:47:01
使您的ID
列具有一个惟一索引。在MySQL手册上阅读这些内容:
https://stackoverflow.com/questions/12860446
复制相似问题