我正在建立一个数据库,我们正在跟踪这些旅行'车辆需要。每次旅行只有一个起点和一个终点,所以我的第一个想法是:
trips:
id (int) - primary key
location_start (int) - foreign key
location_end (int) - foreign key
locations:
id (int) - primary key
name(text)
location_start和location_end将存储位置表中的id。但是,我没有看到如何在Eloquent中管理这个,当我使用vertabelo.com构建这个结构时,我收到一条错误消息"参考名称必须是唯一的"
我应该使用数据透视表吗?如果是这样,我不知道如何强制执行每次旅行的关系只能有两个位置,即起点和终点。
答案 0 :(得分:1)
在您的情况下,创建包含此类内容的迁移
Schema::table('trips', function ($table) {
$table->integer('location_start')->unsigned();
$table->foreign('location_start')->references('id')->on('locations');
});
最后一点,外键定义是在架构构建器中定义的,而不是在Eloquent中定义的。