我有3个表格:用户,语言和级别。Laravel 5.1 - 三个表之间的数据透视表,更好的选择?
一个用户有很多种语言和级别。
例子:
- 豪尔赫说:英语先进,西班牙语基础。
- 彼得说:英语先进,意大利语中,法语基础。
- 路易斯语:西班牙语高级,英语高级,意大利语中等。
表用户
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(50) | NO | | NULL | |
| lastname | varchar(50) | NO | | NULL | |
+----------+-------------+------+-----+---------+----------------+
表语言
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(50) | NO | | NULL | |
+-------+-------------+------+-----+---------+----------------+
表水平
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(50) | NO | | NULL | |
+-------+-------------+------+-----+---------+----------------+
透视表
+-------------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+----------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| user_id | int(11) | NO | | NULL | |
| language_id | int(11) | NO | | NULL | |
| level_id | int(11) | NO | | NULL | |
| created_at | datetime | YES | | NULL | |
| updated_at | datetime | YES | | NULL | |
+-------------+----------+------+-----+---------+----------------+
问题是,如何使用三个表创建带有三个表的表(在doc laravel中该示例仅包含两个表)是可能的? 如何与雄辩的关系?
我是欢迎您阿米戈安瓦尔萨米恩托。 – Alexd2
De nada estamos para servir –
添加,同步用户 - >语言/级别 $ languages_levels = [1 => ['level_id'=> 4],2 => ['level_id'=> 3]]; $ user-> languages() - > sync($ languages_levels); – Alexd2