0

次に生成される行 (2 つのテーブルにまたがる) の ID を一意にすることはできますか?

私は4つのテーブルを持っています:

  • 1 教師用
  • 1 学生用
  • プロジェクト用に 1 つ
  • リレーションの場合は 1

リレーションテーブルには 3 つの外部キーがあります。1 つは教師 ID、1 つは学生 ID、もう 1 つはプロジェクト ID です。

プロジェクトは教師だけでなく生徒にも同時に関連付けることができるため、新しく作成された教師または生徒が他の種類のアカウントで既に使用されている ID を持っていないことを確認するにはどうすればよいですか?

それができれば、リレーション テーブルには ID、project_ID、related_to(ID) の 3 つの列しかありません。

そうでない場合は、関連するアカウントの種類 (学生または教師) を示す 4 行目を追加する必要があります。

ご協力いただきありがとうございます!

アカウントの種類の違いについて: このまったく同じ状況を、最初の 2 つのテーブルが完全に異なる私の別のプロジェクトに変換する必要があります。そのため、ここで生徒と教師のテーブルをマージする必要はありません。

4

2 に答える 2

1

リレーション テーブルにはリレーションシップごとに個別のフィールドがあり、競合が発生しないため、studentとテーブルの間で一意の値を持つ必要はありません。teacher

ただし、これは正しい方法ではありません。teacher_project2 つのリレーション テーブルとが必要ですstudent_project。または、教師と生徒の間で異なる一意のデータに応じて、1 つのpersonテーブルと 1 つのリレーションシップを作成することもできます。これは、いずれにせよ、現実世界により近いものです。

于 2013-01-19T02:20:17.630 に答える
0

教師は 1 で始まり、増分 2 であることがわかると思います。生徒は 2 で始まり、増分 2 です。このように、奇数は教師を指し、偶数は生徒を指します。競合は発生しません。

于 2013-01-19T06:01:07.463 に答える