我在讀關於類表繼承(CTI),並發現我更喜歡整體。我的問題是,是否有單一表繼承(STI)的特定用例,您可以在CTI上使用它?單表繼承或類表繼承?
我讀http://rhnh.net/2010/07/02/3-reasons-why-you-should-not-use-single-table-inheritance據我所知,它是堅實的。 STI的用例是行爲上的差異,但不是數據。
我在讀關於類表繼承(CTI),並發現我更喜歡整體。我的問題是,是否有單一表繼承(STI)的特定用例,您可以在CTI上使用它?單表繼承或類表繼承?
我讀http://rhnh.net/2010/07/02/3-reasons-why-you-should-not-use-single-table-inheritance據我所知,它是堅實的。 STI的用例是行爲上的差異,但不是數據。
我想指出一篇很好的文章,我發現這篇文章解釋了爲什麼以及何時使用CTI。 LINK
使用STI來處理您所說的行爲差異。我會使用的一個示例是:
您已購買,並且您擁有PartialPurchase,與數據唯一的區別在於,PartialPurchase完成時,它將與新創建的Purchase關聯。
因此,行爲是不同的,而且,有些情況下我希望PartialPurchase和Purchase顯示在相同的查詢中。對於商業代理商來說,他們希望同時看到所有的採購和部分採購,因此這些數據在同一個表格中是有意義的。否則,每個模型的所有屬性都是相同的。
在這種情況下,我會在CTI上使用STI。
儘管數據開始差異很大,但我可能會創建另一個與STI表相關的表,並且在很多不同領域的情況下,我可能會想到CTI。
感謝此 – apneadiving 2011-05-20 16:03:13
此外,您導致我的另一個鏈接是http://peterhamilton.github.com/citier/它有很多關於此的博客鏈接。謝謝。 – SpaceGhost 2011-05-20 16:37:42
@SpaceGhost這裏沒有GitHub Pages網站。 – 2015-08-14 09:51:18