【问题标题】:ER Diagram 1:N relationship ConvertER图1:N关系转换
【发布时间】:2020-08-28 20:19:58
【问题描述】:

如果我有员工和项目以及一对多的关系(很多项目,即员工可以分配给多个项目,一个项目只分配给一名员工) 该表将是:

员工(empid、姓名、电话)

项目(proid,proname,cost,empid)

我可以将 proid 键移动到员工表吗:

员工(empid、姓名、电话、proid

项目(proid,proname,cost)

这个转换是错误的还是正确的? 如果最后一个转换是错误的,为什么它是错误的?

【问题讨论】:

  • 员工可以分配到多个项目,一个项目只分配给一个员工?
  • 是的,员工可以分配给多个项目,一个项目只分配给一名员工

标签: erd


【解决方案1】:

您必须将empid 添加到Projects 表中。当您将proid 列添加到Employees 表时,您只能引用一个项目。如果你有一个员工分配到多个项目,你会得到这样的结果:

Employees(1, "John", "123-456-789", 42)
Employees(1, "John", "123-456-789", 20)

如您所见,您的表中会出现两次员工,更不用说违反主键了。因此,您必须将员工 ID 保存在 Projects 表中。

Projects(42, "Research", 10000, 1);
Projects(20, "Analysis", 3000, 1);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-09
    • 2013-12-29
    • 2016-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多