NumOfSub
実際に(被験者の数)または Subjects
に保存したくありませんFaculty
。被験者をそのように保管することは、第 1 正規形に違反しており、それを扱うことは大きな頭痛の種となります。
代わりに、別のテーブルが必要です。
FacultySubject
----------------
FacultyId -- fk for Faculty.FacultyId
SubjectId -- fk for Subject.SubjectId
これから、被験者の数、または被験者をリストした一連の行を簡単に取得できます (MySQL には値のリストを返す関数もあると思いますが、私はそれらの経験がありません)
:特定の教師が教える科目:
SELECT Faculty.FacultyId, COUNT(*)
FROM Faculty
JOIN FacultySubject
ON FacultySubject.FacultyId = FacultyId.FacultyId
WHERE Faculty.FacultyName = 'Really Cool Professor'
GROUP BY Faculty.FacultyId
...そして、このクエリは、彼らが教えるすべての科目 (名前付き) を取得します:
SELECT Subject.SubjectId, Subject.SubjectName
FROM Faculty
JOIN FacultySubject
ON FacultySubject.FacultyId = FacultyId.FacultyId
JOIN Subject
ON Subject.SubjectId = FacultySubject.SubjectId
WHERE Faculty.FacultyName = 'Really Cool Professor'
(これは最後に件名を一連の行として返すことに注意してください。
SubjectId SubjectName
=========================
1 Tree Houses
2 Annoying Younger Sisters
3 Swimming Holes
4 Fishing
)