2016-07-17 7 views
0

私は学校管理システムの一部のためのデータベースを設計しています。私はあなたのアプリケーションをベースにして、それが安全でスマートになるように、ユーザー/アカウントのパーツを設計する方法には不明です。ユーザーアカウントのデータベース設計

アカウントロール:学生、インターンシップスーパーバイザー、学校管理者、システム管理者、スーパーユーザー。 学生は義務的なインターンシップを取らなければなりません(テーブル "インターン")。 インターンシップの監督者がそれらを監督し、統計を表示します。 学校管理者も統計情報を表示します。

私が学生のために保持したいデータは、その学生番号、姓と名です。

他の役割については明らかに学生番号がなく、名前も必須ではありませんが、おそらくそれは良いアイデアです - わかりません。どう思いますか?

ここで私のジレンマ:データベースのアカウント/メンバーシップ/ユーザーの一部を設計して、アプリケーションに役立ち、スマートで安全にする方法を教えてください。私は "学生"テーブルを取り除き、すべてのユーザーを "アカウント"テーブルに入れておくべきですか?あるいは、「学生」テーブルを保持して「アカウント」テーブルに参加させる方が良いでしょうか?あるいは、他のアプローチを示唆するいくつかの基準と良い実践があるでしょうか?以下 私は追加しているUMLS:

デザイン1:

design 1

デザイン2:

design 2

答えて

0

さて、あなたは6つのテーブル

Users (id, name, email, phone etc) 
Userroles (id, title) 
users_to_Userroles (many to many) (contains userId and userRoleId) 
packages (id, title) 
package_rules (id, packageId, discount, free, etc) 
packages_to_users (contains userId, packageId) 
を設計する必要があります

このようにして、パッケージとユーザーロールとユーザーデータを処理できます