2

現在、講師と生徒の詳細を保存するプロジェクトに取り組んでいます。テーブルを 1 つ使用するか、テーブルをUser2 つ使用するかLecturer、およびStudent.

講師としてログインすると、プロジェクトのグループ管理ページとして特別な権限が与えられます。グループ ページが読み込まれると、学生には付与されません。Usertbl には、登録時に学生または講師を選択し、特別な講師コードを入力できるページがある列 がstatusあります。私はmySqlでPHPを使用しています。

まとめると、User学生用と講師用に1つのテーブルを使用するか、2つの別々Studentのテーブルを使用する必要がありLecturerます。

追加情報: 1 つのコースには多くの講師と受講生が含まれる場合がありますが、1 人の受講生には 1 つのコースが含まれ、講師には多数のコースが含まれます。

4

2 に答える 2

7

素晴らしい質問です。

複雑すぎるように見えるかもしれませんが、このシステムを拡張したい場合は、これをもう少し「正規化」してモデル化することを強くお勧めします。講師と受講者が同じエンティティ (人/ユーザー) であることを認識することで、あなたはすでに正しい道を進んでいます。秘訣は、「ロール」をモデル化してから、ユーザーのロールもモデル化することです。これにより、モデルのこの小さな部分に対して合計 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
+---------+---------+
于 2014-11-17T16:07:31.440 に答える