我想了解Django Intermediary Models的目的。瞭解Django的中介模型
從概念上講,它們在UML類圖中似乎相當於association classes。我應該知道兩者之間有什麼根本的區別?
雖然有明顯的相似性,但我發現了幾個資源來解釋中介模型的用途,但他們都沒有提及「關聯類」,這使我有點懷疑。
我想了解Django Intermediary Models的目的。瞭解Django的中介模型
從概念上講,它們在UML類圖中似乎相當於association classes。我應該知道兩者之間有什麼根本的區別?
雖然有明顯的相似性,但我發現了幾個資源來解釋中介模型的用途,但他們都沒有提及「關聯類」,這使我有點懷疑。
你可能不會發現任何比較,在Django的文獻UML圖 - UML建模是不是真的在Python世界大的事情,在我的經驗。
但看着你的圖,我同意這個概念看起來非常相似。不要忘記,ORM就是這樣一種關係概念到對象的映射:在這種情況下,貫穿表映射始終以多對多關係創建的中間表。唯一的區別是,如果您想爲該關係添加額外信息(例如鏈接中的註冊日期),則只需手動指定即可。如果您不需要額外的字段,則不需要指定中介模型,但該表仍然存在,僅包含M2M關係每端的外鍵。
它們用於存儲有關多對多關係的其他數據。我確信這是褻瀆神明,但我認爲最好的例子是來自Ruby on Rails guides,它使用患者和醫生之間的關聯。醫生通過預約有許多患者;患者通過預約也有許多醫生;但是你不能直接模擬這種關係,因爲約會還有日期和時間。
我認爲你在概念上是正確的,它們服務於與UML中關聯類相似的目的。
這是在任何關係數據庫中如何實現多對多關係,它是關係數據庫設計的基本部分。所以我建議首先了解數據庫設計原則,因爲無論如何知道數據庫如何工作對於正確使用ORM都是必需的。
是的,我想我看到的大多數東西確實證明UML並不是Python社區非常使用的。謝謝。 – 2011-04-14 11:37:27