你對這個模式有很多選擇,但是對於未來的規模,我會選擇層次類型表,然後爲層次結構中所涉及的人選擇屬性表。這將允許您在同一結構中跟蹤學生/教師關係(具有正確的屬性)。
目錄一會牽着你的分層信息,這將是你的人之間的關係:
id | parent_id | other_relationship_attributes
表2將舉行關於個人信息:
id | occupation | gender | etc..
然後,您可以編寫一個可以遍歷查詢您的層次結構並從個人表中提取相關信息。
如果你的學生信息非常不同,那麼你的父母信息(可能),那麼第二個表將有意義分解成兩個表。 1給你的學生,一給父母。
的是什麼,這可能看起來像SQL,回答這個問題:「告訴我,他們的父母都是老師的所有學生一個例子:。
SELECT
student.id,
student.name,
CASE WHEN student.gender = 'F' THEN 'Daughter' ELSE 'Son' END as child_relationship
parent.id,
parent.name,
parent.occupation,
CASE WHEN parent.gender = 'M' Then 'Father' ELSE 'Mother End as parent_relationship
FROM
person as student
INNER JOIN hier on student.id = hier.id
INNER JOIN person as parent on hier.parent_id = parent.id
WHERE
parent.occupation = 'Teacher'
對不起,我是新來的DB在這裏,我們如何與表1和table2。可以用表結構來解釋我嗎?謝謝。 – user3095439
我已經添加了一個SQL結構可能看起來像什麼樣的示例來展示這些關係,除此之外,如果你仍然在爲這個看起來或者爲什麼而苦苦掙扎可能是這樣看的,你可能只想在現實生活中嘗試一下(如果你沒有數據庫的可玩性,請查看sqlfiddle.com)。你可能想要閱讀基本的SQL和關係數據庫模式。 – JNevill