2

次のシナリオがある関係を特定する際に問題があります

  • 教師は多くの論文をレビューできる
  • 1 つの論文を 4 人の教師がレビューできます
  • 教師は論文を作成できます
  • 論文にはステータス (レビュー中、承認済み) がある場合があります。
  • 教師でもある学科長が論文をレビューする教師を選びます。
  • 教師にはさまざまなタイプがあります (つまり、論文の著者、査読者、教科長など)。

次の表を特定しました。

  • 先生
  • 教師の種類

教師は多くのタイプを持つことができ、多くの教師は同じタイプを持つことができるため、関係は多対多であり、これは 1 対多に分割されるため、テーブル TEACHER_TYPE (ジャンクション テーブル) が存在します。これをどのように使用するか、教師の各ロールを異なる方法で識別しなければなりません。では、TEACHER_TYPE の主キーを使用して、レビューとオーサリングのプロセスを別々に記録しますか? または、いくつかの異なるアプローチで Teacher テーブルの同じ id を使用しますか?

4

2 に答える 2

0

4 番目のテーブル PAPER_TEACHER を作成します。これにより、質問がはるかに簡単になります。

TABLE TEACHER T_ID TABLE PAPER P_ID TABLE TEACHER_TYPE T_ID および TT_Type TABLE PAPER_TEACHER T_ID、P_ID、および PT_Status

SELECT * FROM PAPER t1 INNER JOIN PAPER_TEACHER t2 on t1.P_ID = t2.P_ID AND t2.PT_status = "under review" INNER JOIN TEACHER t3 on t2.T_ID = t3.T_ID INNER JOIN TEACHRE_TYPE t4 on t3.T_ID = = t4. T_ID AND t4.TT_Type = "レビュー担当者"

PP_status を要求する場所では、あらゆる種類のものを使用できます。

于 2012-10-18T19:44:14.683 に答える
0

一見すると、欠けているように見えるものの 1 つは、教師と論文の間の多対多の関係を表すリンクまたは関連付けテーブルです。テーブルは次のようになります...

review         <-- this name can be descriptive of the purpose (review)
----------         but is also often just the name of the association
fk_paper_id    <-- foreign key to paper
fk_teacher_id  <-- foreign key to teacher performing review
review_status  <-- one or more columns indicating the status of this review

教師のタイプは、教師および/または論文の単なる属性である可能性があります。

教師 (教科長など) の間には階層があり、個別のタイプではなく、教師の属性として表すこともできます。テーブルは自己参照することができます...たとえば、従業員テーブル....

employee
--------------
pk_employee_id
name, etc
fk_manager_id     <-- foreign key referencing back to the managing employee
于 2012-10-18T19:21:25.713 に答える