2016-07-15 63 views
0

我正在爲我正在開發的業餘愛好項目設置模型/表關係非常困難。 我有一個訂單,訂單將有一個或多個包裝,每個包裝有一個或多個產品,每個產品將有一個區域分配到一個區域 。訂單上和同一包裝中可能有多個相同的產品,但每個產品都有不同的區域 和不同的數量。我正在努力確定如何建立關係。訂單表

在一天結束時,我需要運行一份報告,向我顯示訂單詳細信息,列出訂單上的所有包以及每個包中包含的所有產品和區域。我還需要一份報告,向我顯示訂單上每件產品的訂單和所有數量的總和(此包裝上沒有包裝)。我使用的Rails ActiveRecord我認爲會有 幾個多態關係,但我努力識別它們,因爲這超出了我的簡單「一切都有一對多關係」的想法。 =)

你能幫我把這些表以智能的方式放在一起嗎?我已經搜索了類似的模式圖,但沒有取得太大的成功,我已經在這裏工作了幾天,現在一切都開始一起運行。

enter image description here

這是我的想法對關係的基礎,但我不知道Rails的車型將是什麼樣子。似乎從訂單下來的每一個關係都是多態的。(?)我如何將這些關係嵌套在rails中?

我在學習,喜歡這麼多事情,看起來很簡單,但是當你開始爲它編寫代碼時,它變得更加複雜。我在正確的軌道上嗎?謝謝你的幫助。

+0

By polymorphic你的意思是,Order_Package_ * X *是* X *?雖然這是該術語的典型通用用法,但在ActiveRecord中[「具有多態關聯,一個模型可以屬於多個其他模型,在單個關聯上」](http://guides.rubyonrails.org/association_basics.html #多態的協會)。 – philipxy

回答

0

我想你需要一些JOIN表。

一個Order可以有很多Products;一個Product可以被添加到許多Orders

在這種情況下,您將有一個JOIN表,其中有兩列:主鍵爲OrderProduct。兩者一起將是一個複合主鍵。

我不知道什麼Area意味着你的模式,但也許這個建議會打破你的心理僵局。