laravel 5为具有相同外键ID的字段添加唯一约束

时间:2016-03-24 23:22:02

标签: mysql laravel-5

我有一个员工表,其中包含姓名和ID,我有一个employee_off_date表,其中包含employee_id和date。我想为员工ID的日期添加一个唯一约束。例如,如果employee_id 1的日期为2016年3月30日,则另一个employee_id 1的日期不能与2016年3月30日相同,但employee_id 2的日期可以是2016年3月30日。无论如何我可以在laravel 5或mysql中执行此操作吗?或者我应该手动编写这个逻辑?

2 个答案:

答案 0 :(得分:0)

您可以在表格上添加唯一约束,这将限制插入重复的ID和日期组合,例如:

ALTER TABLE employee_off ADD CONSTRAINT ux_employee_off 
UNIQUE (employee_id, date)

答案 1 :(得分:0)

您可以将表设置为具有唯一的复合键。如果您想通过迁移执行此操作,可以执行以下操作:

Schema::table('employee_off_date', function($table) {
    $table->unique(['employee_id', 'date']);
});