我開發一個應用程序,並跑進一對夫婦,我相信是因爲我已經建立了我的架構方式的問題。構建連接表許多一對多的關係
該應用的概述大學課程系統。每門課程由多個模塊組成,每個模塊由多個單元組成,每個單元由練習組成。
要求是鍛鍊,單位和maulers可以以不同的方式重新使用,以形成新的內容。因此,例如鍛鍊可以在模塊B和模塊C存在
起初,我已經走了,看起來像這樣的數據庫,我已經刪除了所有,但主鍵和外的ID爲簡潔。
+---------+
| courses |
+---------+
| id |
+---------+
+----------------+
| course_modules |
+----------------+
| id |
| course_id |
| module_id |
+----------------+
+---------+
| modules |
+---------+
| id |
+---------+
+--------------+
| module_units |
+--------------+
| id |
| module_id |
| unit_id |
+--------------+
+-------+
| units |
+-------+
| id |
+-------+
+----------------+
| unit_exercises |
+----------------+
| id |
| unit_id |
| exercise_id |
+----------------+
+-----------+
| exercises |
+-----------+
| id |
+-----------+
到目前爲止,這似乎很明顯,我已經搞砸了。
給定一個具體的unit_exercise
我沒有辦法知道它屬於哪個過程,因爲我無法可靠地向上移動「鏈」,因爲不可能知道這是指哪個module_unit
。
我的問題是我應該連接表實際上是鏈接到自己的父母嗎?因此,例如我改變加入到
+----------------+
| course_modules |
+----------------+
| id |
| course_id |
| module_id |
+----------------+
+-------------------+
| module_units |
+-------------------+
| id |
| course_modules_id |
| module_id |
| unit_id |
+-------------------+
+----------------+
| unit_exercises |
+----------------+
| id |
| module_unit_id |
| unit_id |
| exercise_id |
+----------------+
最初,它似乎是多餘包含此信息,但更多的我看着它,好像它必須是必需的。
你沒有搞砸了 - 一個單位的鍛鍊可以屬於多個模塊/課程。只要確保保持'{unit_id,exercise_id}'等等。獨特。 – 2014-11-04 20:31:27
我需要能夠去特定的單位(例如),並能夠找到正確的相關課程。 沒有表的「父」的輔助外鍵沒有辦法做到這一點,似乎他們是不明確的,哪一個'course_unit'屬於'course_module' – veganista 2014-11-05 14:16:13