0

現在のプロジェクトのデータベースをモデル化しようとしていますが、新しい問題に遭遇しました。、およびProjectによって監督されているがあります。そのため、 Project テーブルには外部キーなどがあります。外部キーとして含むテーブルもあります(多くのユーザーがプロジェクトを実行できるため)。これが今の様子です。私がしたいのは、その特定のユーザー (学生も) の役割を確認できる名前の列を含むテーブルを作成することです。テーブルには多くのエントリが含まれますが、冗長なコードははるかに少なくなります。SupervisorCoordinatorCompanySupervisor.idStudentProject.isUsertypeNULL

Userただし、テーブルを1 つにしたい主な理由は、 CakePHPを使用しており、異なるモデルをログインさせるのは簡単ではないためです。これは良い方法で可能ですか?

ありがとう

編集:これらの役割のすべてが異なる権限を持つと言うべきかもしれません。

4

2 に答える 2

0

関連付けをどのように使用するかによって異なります。

なぜだめですか

例: 後でデータを出力するためにリレーションを使用し、データベース スキームが変更されないことを確信している場合は、なぜでしょうか? 主な目標は、コードの品質と開発の速度です。そのため、null を含む列がいくつあってもかまいません。

しかし

要件が不明な場合、またはデータベース スキームを拡張する予定がない場合は、2 つの列を使用できます。

  • スーパーバイザー_モデル
  • スーパーバイザー_id

適切な値を格納します: Company, 77 (つまり、77 は come Company の ID です)

別のアプローチ

Supervisor_id のUUIDを使用できるため、複数のテーブル間で一意になりNULL、余分な列が少なくなります。

于 2013-07-24T15:48:38.003 に答える