现在给一培训机构写个课程管理系统..是这样的,一个课程可以由多个老师来上
一个老师可以讲几门课我是这样设计的:老师表:
任课老师号  (主键)  可以自增
老师名
性别
年龄
备注
--------------------------
课程:
课程号     (主键)可以自增
课程名
适合人群
会员价格
非会员价格
--------------------------
任课表:
编号  (主键,自增)
课程号
任课讲师号
开课地点     
开课日期备注:同一门课同一个老师来讲,有可能每次的地点和时间都不同请问:
1.请问以上数据库设置是否合理,特别是任课表,主键是单独用一个记录编号来设计还是怎么好?
2.在没有录入任课表的情况下,怎么搞定在确定老师名的情况下,得知其所讲授的课程名.因为我在录入任课表信息的时候,希望课程名通过老师名来列出进行选择..

解决方案 »

  1.   

    满足如上要求,数据库怎么改进点好..
      

  2.   

    任课表:
    课程号和任课讲师号联合作主键再建一张表保存开课地点和开课日期----
    个人建议不一定合理
      

  3.   

    楼主会的东西给我一模一个样..呵呵
    我也菜.个人认为:
    1.用自动编号做主键是没问题的,但是我一般不这样做,因为这样不能体现实体之间的关系
    按照你给的条件,任课表的所有字段组成联合主键
    2.没看明白,既然任课表没录入,那么某一个老师就可以上任何一门课,应该列出所有课程让他选的...另外,感觉老师表的年龄字段不太好,用出生日期好些,不然每年要维护一次年龄字段..
      

  4.   

    任课表如果没有那个自增的编号的话,这样设计是可以的。
    如果增加了那个编号,则需要把开课时间和地点两个字段取出来,与编号形成另外一个表。因为你的设计存在传递函数依赖,删除或更新时会比较麻烦。
      

  5.   

    任课表:
    ------------
    课程号
    任课讲师号
    开课地点     
    开课日期任课表设计成这样,主键为这四个字段组合,即全码.可以么?