2012-11-14 29 views
-1

我目前正在使用Code Igniter和Datamapper ORM處理應用程序,並試圖將數據保存到數據庫中。我有兩張桌子,彼此之間有多對多的關係。例如:ShoeDesigns和ShoePieces。我還想將一些數據保存在ShoeDesigns和ShoePieces(即ShoeDesigns_ShoePieces)之間的連接表中。我試圖四處尋找例子,但沒有運氣。Datamapper ORM將數據保存在連接表中

我只是想知道是否可以真正做到這一點,如果我可以在一次保存調用中做到這一點,或者我必須在多次保存調用中做到這一點?

謝謝你們。

+0

ehhh ..是否有一個原因,我得到一個投票? – koramaiku

回答

2

如果您向ShoeDesigns_ShoePieces添加了與ShoeDesignsShoePieces之間的關係有關的數據,那麼您將違反ORM概念。 ShoeDesigns_ShoePieces將不再只有模型的關係,但它將是一個實體和關係的混合。

如果您有一些附加到ShoeDesignsShoePieces之間的關係的屬性,則需要執行此操作;這意味着「關係」實際上是一個實體。我們稱之爲ShoeAssemblyPlan。然後,你必須:

  • ShoeDesignsShoeAssemblyPlan
  • 之間的許多一對多的關係ShoeAssemblyPlanShoePieces

之間的許多一對多的關係(的關係也可以多到-一)。

您現在通過一個Assembly Plan實現了設計和Pieces之間的舊關係,您可以將它們附加到您想要的屬性上。例如,你可以有一個「Glue Stacked Design to Four-Set Set」組裝方案和一個「Stitch Formal Design to Four-Set Set」組裝方案;並且您可能有與每個計劃關聯的不同成本和前置時間。

+1

@Isemi謝謝你澄清我正在試圖做的事情。至少有人願意澄清我是否採取了錯誤的做法,而不是投下我的問題。我瞭解堆棧溢出的人通過監視問題試圖保持網站的質量,但我實際上試圖提出一個合理的問題,以瞭解我做錯了什麼以及爲自己提供了一個完整的檢查。我感謝你的努力。謝謝。 – koramaiku