私は現在、私たちの学校の新しいデータベース/Web アプリケーションを開発しています。私の質問をもう少し関連性のあるものにするために、少し背景情報を提供する必要があります。
このアプリケーションにアクセスするさまざまなユーザー タイプがあり、それぞれがアクセスできる「ゾーン」ごとに異なるアクセス許可でアプリケーションのさまざまな部分にアクセスする必要があります。
例えば:
学生はログインしてそこにある情報にアクセスし、詳細を更新したり、レポートのコピーをダウンロードしたりできます (そのため、学生は自分の情報のみを表示できます)。
教師はログインして、そこにある情報と彼らが教えるすべての生徒にアクセスできます
マネージャーはログインして、管理しているすべての教師と生徒の情報にアクセスできます
他にもたくさんのログインタイプがありますが、この質問ではそれらはすべて、技術的には、追加情報のために独自のテーブルを持っていない、または必要としないより多くのユーザーであるため、それほど重要ではありません.
大部分は自分が満足している構造を決定しましたが、次のようにするのが最善だと思う方法について考えを変え続けています。
関連するすべてのユーザー情報(ユーザー名、パスワードなど)が保存されているユーザーテーブル(User_T)があります。
ただし、一部のユーザー タイプ (EG、学生、スタッフ、ETC) 用に別のテーブルも用意しています。学生はスタッフ メンバーとは異なる情報を保存する必要があるため、これが必要です。ここに私の問題があります。すべてのユーザーが同じ基本フィールド (名、姓、生年月日、性別など) をいくつか持っています。
これらを User_T テーブルに格納する必要がありますか? それとも個々のテーブルで?
それらをすべて User_T テーブルに保存すると、アプリケーションが情報を取得して更新できるようになりやすくなります。たとえば、学生の詳細を表示するときは、User_T を参照して学生の名前などを取得する必要があります。 .
私は現在、最良のオプションは、すべてのフィールドを含む個別のテーブルを作成し、それらをビュー User_V に結合することであり、データの起源を示すフィールドを使用して、更新が実行されたときにそれを適用できるようにすることだと考えています。適切なテーブル。
考え?