Erd ER图1:N关系转换
如果我有员工和项目以及一对多的关系(项目中的许多人,即员工可以分配到多个项目,一个项目只分配给一名员工) 该表将是: 员工(empid、姓名、电话) 项目(项目ID、项目名称、成本,empid) 我是否可以将proid密钥移动到employees表,如下所示: 员工(员工ID、姓名、电话、proid) 项目(项目名称、项目名称、成本) 这个转换是错误的还是仍然正确?Erd ER图1:N关系转换,erd,Erd,如果我有员工和项目以及一对多的关系(项目中的许多人,即员工可以分配到多个项目,一个项目只分配给一名员工) 该表将是: 员工(empid、姓名、电话) 项目(项目ID、项目名称、成本,empid) 我是否可以将proid密钥移动到employees表,如下所示: 员工(员工ID、姓名、电话、proid) 项目(项目名称、项目名称、成本) 这个转换是错误的还是仍然正确? 如果最后一次转换错误,为什么会错误?您必须将empid添加到Projects表中。将proid列添加到Employees表时,只能
如果最后一次转换错误,为什么会错误?您必须将
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);
员工可以分配到多个项目,而一个项目只分配给一名员工?是的,员工可以分配到多个项目,而一个项目只分配给一名员工