数据库继承Laravel 5.4
问题描述:
我期待实施一个网站,处理教师,学生和家长。在我创建的数据库中,我创建了一个user
表和3个子表:teachers
,students
,parents
。 请参阅下表结构数据库继承Laravel 5.4
User table
+--------+----------+----------+-------+
| id (PK)| username | password | email |
+--------+----------+----------+-------+
| 1 | user1 | 123 | ... |
+--------+----------+----------+-------+
| 2 | user2 | 132 | ... |
+--------+----------+----------+-------+
| 3 | user3 | 321 | ... |
+--------+----------+----------+-------+
Student table
+---------------+--------------+
| users_id (PK) | class |
+---------------+--------------+
| 1 | highschool |
+---------------+--------------+
| 3 | middleschool |
+---------------+--------------+
Teacher table
+--------------+-------------------+---------------------+
| users_id (PK)| subscription_type | end_of_subscription |
+--------------+-------------------+---------------------+
| 2 | monthly | 2017-10-25 |
+--------------+-------------------+---------------------+
而且父母见下表也有对应于用户ID的PK。 我刚开始学习laravel,我真的很想知道如何能够正确处理Laravel 5.4。
答
我给你一些提示,我觉得你可以做休息,因为你的问题不是具体的我猜你的心思,你怎么能与/连接表,所以
- 创建三个模式让说
User, Student, Teacher
。 - 学生&教师模型创建方法像下面
public function user() { return $this->hasOne(User::class, 'id', 'users_id'); }
现在,你可以查询,如:
$student = Student::find($id) ;
$name = $student->user->name;
$email = $student->user->email ;
Or
$teachers = Teacher::where('subscription_type', 'monthly')->with(['user'])->get();
dd($teachers);
我认为你需要更新你的数据库结构,您需要将pk & fk 列分隔。
+0
非常感谢您的帮助:)它解决了我的问题。并感谢您的建议,我将实施一个新的ID列作为FK。再见 –
学生表和老师表中用户表的FK在哪里 –
FK在'users_id'上。 'users_id'是表'用户,老师'和'父母'的PK,而且是指用户的FK。 –
对以上评论发生了错误:\t 'users_id'是学生,教师和父母表的PK,也是指用户的FK。 –