2

私は、管理者、教師、学生、およびレッスンがある「e-class」アプリケーションに取り組んでいます。1 人の生徒は多くの教師と多くのレッスンを持つことができ、1 人の教師は多くの生徒と多くのレッスンを持つことができ、1 つのレッスンは 1 人の教師と多くの生徒を持つことができます。

管理者が独自のログイン ページを持ち、教師/学生が同じページを共有できるようにしたいと考えています。(ところで、これは最良のアプローチですか?)

私の質問は、すべてのログイン関連情報 (ユーザー名、パスワード、電子メール) を「ユーザー」テーブルに入れ、残りのすべての情報に対して別のテーブル (「教師」、「学生」) を用意する必要があるかどうかです。

「学生」/「教師」テーブルのいずれかのプライマリ ID を指す「ユーザー」テーブルにキーを含める必要がありますか?

これらすべてに対する最善のアプローチは何でしょうか? 助けてください、mysqlの達人:)

注: 私に関連する多くの質問を見てきましたが、実際に私の質問に答えたものはありませんでした。

4

1 に答える 1

1

Abe Miessler が提案するよりもさらに一歩進んで、Users と Roles の間の参照テーブルを作成します。

たとえば、教師が学生として登録し、異なる時期に両方の役割を引き受ける必要があることは不可能ではありません。

USER_TABLE:
UserID PK
UserName
OtherUserData

ROLE_TABLE
RoleID PK
RoleName

USER_ROLES
UserID PK
RoleID PK

USER_ROLES has composite PK on UserTable.UserID AND RoleTable.RoleID
于 2013-01-25T18:48:48.243 に答える