具有一对多前键的实体关系

时间:2019-06-21 17:27:00

标签: mysql

这更多是关于最佳实践/效率优化的问题,同时还可以帮助我摆脱困境。

我需要建立一个模拟视频游戏公司的数据库。我有该项目实体以及为该特定项目分配的雇员花名册,还有具有与该项目花名册相关的外键的雇员实体。我必须添加不同的薪酬类型,例如承包商,实习生和全职员工。与此同时,我必须将员工本身分成四个独立的组,以表明他们是程序员,艺术家,设计师,测试员还是制作人。在保持数据库查询灵活性的同时,最有效的方法是什么?

我曾经想过要为薪资类型和员工类型建立一个桥梁实体,但是我陷入了困境,认为我可能需要从薪资类型桥或雇员到每个相应类型表的外键类型桥,这在查询方面将是多余的,并且在查询时会产生错误的个人。

有没有办法制作一个可以查看实体属性的组合键,并将其分配为指定员工类型的成员? 例如:

emp_ID       lname    fname  assigned_project     FK_pay_type_ID
123456       Shelly   Mary          21             65(contractor)            

emp_type

designer(this could be read and a script could assign her to the designer table?)

要了解一下我在这里想做的事情,请看我在Visio中模拟的几张桌子:

Visio Image Here(我真的必须拥有任意站点位置才能发布可澄清我问题的图像?真的吗?)

Project               Project_Roster        Employee
FK_projectState ----> PK_projectRoster_ID   <list employee credentials here>
PK_Project_ID         FK_Employee_ID ------>FK_assignedRoster_ID
projectName                                 FK_payType_ID  (goes to bridge)
launchDate                                  FK_EmployeeType_ID(goes to bridge)



Employee_PayType_BR
PK_payType_ID (pointed to specific type depending on assigned?)
FK_Employee_ID
description
amount_Offered
amount_paidToDate("salary" if full time)


#Not sure how to get here

PayType - Contractor
PK_Contractor_ID
FK_Employee_ID
parent_company
skill_set(list | array)


PayType - Intern

PK_Intern_ID
FK_Employee_ID



也许有一种更简单的方法,我只是想念它,在这种情况下,我为自己的无能道歉。

0 个答案:

没有答案