繁体   English   中英

计划的数据库架构设计

[英]Database schema design for schedules

我有两个表:公司和员工。

我还有一个关系表Employs,其中包含外键company_id,employee_id作为复合主键。 注意:员工可以在多家公司工作。

我想拥有另一个表EmployeeSchedules,该表仅包含在公司工作的员工的时间表(company_id:integer,employee_id:integer,start_time:datetime,end_time:datetime)。 这最终将显示在某种日历小部件中。

但是,通过这种设计,在添加时间表之前,我将必须在应用程序级别上验证员工确实在公司工作。

我想知道是否有更好的方法可以在数据库级别表示这一点,还是只坚持在应用程序级别进行验证? 例如,如果有一种方法可以将EmployeeSchedules pkey(company_id,employee_id)与Employs pkey(company_id,employee_id)链接。 欢迎其他任何设计建议!

我将重新定义架构,并添加另一个表:

Person(id, name)
Company(id);
Employee(id, companyId, personId);
Schedules(id, employeeId, startTime, endTime);

这意味着员工记录只能绑定到一个公司。 一个人可以有多个员工记录。 所有的“ id”列都是唯一的,并且是表的主键。 “ companyId”是指公司表的主键,依此类推。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM