素晴らしい質問です。
複雑すぎるように見えるかもしれませんが、このシステムを拡張したい場合は、これをもう少し「正規化」してモデル化することを強くお勧めします。講師と受講者が同じエンティティ (人/ユーザー) であることを認識することで、あなたはすでに正しい道を進んでいます。秘訣は、「ロール」をモデル化してから、ユーザーのロールもモデル化することです。これにより、モデルのこの小さな部分に対して合計 3 つのテーブルが作成されます。
USERS USER_ROLES ROLES
+------------+ +----------+ +--------+
| id | <--> | user_id | /-->| id |
| login_name | | role_id | <--/ | name |
| etc | +----------+ +--------+
+------------+
users
======
id
login_name
etc
roles
=======
id
name
user_roles
===========
user_id
role_id
since
サンプルデータ
USERS
+----+------------+
| id | login_name |
+----+------------+
| 1 | Chris |
+----+------------+
| 2 | Cherri |
+----+------------+
ROLES
+----+------------+
| id | name |
+----+------------+
| 1 | Lecturer |
+----+------------+
| 2 | Student |
+----+------------+
USER_ROLES
+---------+---------+
| user_id | role_id |
+---------+---------+
| 1 | 1 | <-- Chris is a Lecturer
+---------+---------+
| 2 | 2 | <-- Cherri is a student
+---------+---------+
| 2 | 1 | <-- Cherri is also a lecturer
+---------+---------+