我看看這兩個博客文章,感覺有點晦澀難懂有關回報率的has_many關係一對多的關係:很多在Rails的
在這其中:http://kconrails.com/2010/01/16/many-to-many-relationships-in-ruby-on-rails/,在「的has_many:通過」一節中,筆者認爲用於連接表貢獻就像是遷移文件:
class CreateContributions < ActiveRecord::Migration
def self.up
create_table :contributions do |t|
t.references :artist
t.references :song
t.string :instrument
t.timestamps
end
...........
因此連接表的遷移將參考2臺藝術家和宋使用t.referen ces:藝術家和t.references:歌曲。如果我們想要訪問該歌曲的樂器演奏者演奏等屬性,我們可以使用連接表貢獻訪問它。
在第二個職位:http://kconrails.com/2010/01/29/has_and_belongs_to_many-associations-in-ruby-on-rails/。欄目:「has_many:through」,作者介紹了名爲分類的「成熟桌子」。遷移是象下面這樣:
class CreateCategorizations < ActiveRecord::Migration
def self.up
create_table :categorizations do |t|
t.integer :category_id
t.integer :item_id
t.timestamps
end
...........
所以羽翼豐滿表的遷移將t.integer參考表2和類項目:CATEGORY_ID和t.integer:ITEM_ID。我們只能訪問與表格的兩個屬性(如時間戳)相關的特定屬性,我們是否可以向模型添加更多屬性(如t.string:instrument)?
例如,如果我有很多一對多的關係模型,如廠商和產品,我要跟蹤價格的,我應該把它變成全面的表,對不對?但是,如果我只想添加一個屬性,但不會像Original_From(顯示產品的生產位置)那樣跟蹤它,我只需要將其放入連接表中?
我可以概括這樣說:當屬性的數量是有限的,不重要的跟蹤,可使用連接表。當屬性的數量很多並且我們想要跟蹤時,我們將使用完整的表格。這是對的嗎?
當我們訪問的數據有什麼區別?就像我想在上面的例子中訪問價格或位置一樣?
我仍然不清楚全面的表和聯接表之間的不同。請給我一些想法。非常感謝你!
更好的支持,他們在技術上是相同的。在某些情況下,您希望使用一個屬性來標記連接表中的每條記錄,該屬性指示該FK組合是否處於活動狀態,或者這兩個組合使用的是樂器。 –