数据库设计的问题

snfeng 2008-03-21 10:23:36
经常看到书上这样设计一个关系模式,如下:
学生(学号,姓名,性别,专业号) 其中“学号”为主键 “专业号”为外键
专业(专业号,专业名称) 其中“专业号”为主键
这样设计的话,对学生表进行插入的时候,我要分别输入学号,姓名,性别,和专业号,而“专业号”很多人不清楚,不如“专业名称”熟悉,或者说不如让用户直接输入“专业名称”而不是“专业号” 那么关系模式就要修改成下面的样子:
学生(学号,姓名,性别,专业名称)(“专业名称”在同一所学校肯定没重复)
这样用户更好理解
可为什么书上不这样写呢?请帮忙,谢谢!!
...全文
73 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
snfeng 2008-03-22
  • 打赏
  • 举报
回复
刚去揭贴了,出了点问题,改天再接
snfeng 2008-03-22
  • 打赏
  • 举报
回复
明白了,谢谢各位,马上揭贴
小小的蚂蚁 2008-03-21
  • 打赏
  • 举报
回复
我同意 3 楼的说法
zbc1009 2008-03-21
  • 打赏
  • 举报
回复
估计你没系统学过数据库,别骂我哦,我的感觉。。。
给你个链接,里面讲的比较清楚
(网上找的)
http://hi.baidu.com/shmilyqlc/blog/item/d1ee350edfae30c97acbe14a.html
dawugui 2008-03-21
  • 打赏
  • 举报
回复
[Quote=引用楼主 snfeng 的帖子:]
经常看到书上这样设计一个关系模式,如下:
学生(学号,姓名,性别,专业号) 其中“学号”为主键 “专业号”为外键
专业(专业号,专业名称) 其中“专业号”为主键
这样设计的话,对学生表进行插入的时候,我要分别输入学号,姓名,性别,和专业号,而“专业号”很多人不清楚,不如“专业名称”熟悉,或者说不如让用户直接输入“专业名称”而不是“专业号” 那么关系模式就要修改成下面的样子:
学生(…
[/Quote]

学生(学号,姓名,性别,专业号) 其中“学号”为主键 “专业号”为外键
专业(专业号,专业名称) 其中“专业号”为主键
这种模式是主流设计方法.

-------------------------------------------------------------
这样设计的话,对学生表进行插入的时候,我要分别输入学号,姓名,性别,和专业号,而“专业号”很多人不清楚,不如“专业名称”熟悉,或者说不如让用户直接输入“专业名称”而不是“专业号” 那么关系模式就要修改成下面的样子:
学生(学号,姓名,性别,专业名称)(“专业名称”在同一所学校肯定没重复)
这样用户更好理解

如果要更改某个专业名称,如"计算机管理"改为"计算机应用".
那么你这个表的所有计算机管理都要改.

而采取第一种模式,则只需要改专业表里面的专业名称为"计算机管理"为"计算机应用"即可.
hui_hui_2007 2008-03-21
  • 打赏
  • 举报
回复
当然了,前台程序中,用户选择的是名称,但是保存时却要存入这个名称对应的编码.
用编码才规范呀.你想想,为什么会计制度要设会计科目,是数字编码,而不是名称.
hui_hui_2007 2008-03-21
  • 打赏
  • 举报
回复
外键必须是编码,而不是名称.
kelph 2008-03-21
  • 打赏
  • 举报
回复
比如说使用一个下拉选择框,下拉中是专业的名称列表或编号+名称列表
用户下拉选择了数学专业,但数据库中保存的是数学专业对应的编号
liangCK 2008-03-21
  • 打赏
  • 举报
回复
输入学号,姓名,性别,和专业号,而“专业号”很多人不清楚,不如“专业名称”熟悉
-----------
这个号码..不是你输入的..
是在前台程序中..当你选择了专业名称之后..自动搜索出来的..
liangCK 2008-03-21
  • 打赏
  • 举报
回复
不符号规范化.
liangCK 2008-03-21
  • 打赏
  • 举报
回复
这样是更好理解..但存在冗余..

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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