一个项目表(PK:项目ID),一个员工表(PK:员工ID),一个项目员工关系表(PK:项目ID,员工ID)。

解决方案 »

  1.   

    一个项目员工关系表(PK:项目ID,员工ID)。这样只加了一个中间表可以吗?我觉得应该加两个中间表:员工项目关系表(PK:员工ID)(员工唯一)  ,项目员工关系表(PK:项目ID))(项目唯一)。
    这样把多对多关系的问题分解为两个一对多的问题,这样行吗?
    (即:  多对多 --- 一对多--- 一对多 --- 多对多 )
      

  2.   

    如果设计成    项目员工关系表(PK:项目ID,员工ID),那么统计每个员工的工时用SQL语句实现可能比较慢,是吗?
      

  3.   

    两个中间表不合理。
    你的员工项目关系表(PK:员工ID)(员工唯一)里面,一个员工多个项目怎么表示?难道一个column是string类型的,用逗号隔开各个项目吗?今后扩展到计算员工价值(项目一付出多少钱的劳动力,项目二付出多少钱的劳动力)就很难了
    hq1305018提出的模型是比较常用的,对今后的扩展也有好处。比如这个员工在这个项目中担任什么角色(Desiner,PM,programmer,seller),这个project为这个员工花费多少钱(薪资,分红等)都很容易扩展。
    至于速度慢不慢,1000个项目,每个项目100人,也就10万条记录,一个公司有那么容易达到这个数目吗?
      

  4.   

    1员工
    2项目
    3工作历史纪录(reference to 1&2)