0

我目前正在爲Rails應用程序製作數據庫。該模式涉及三種模式:照片,對象和標籤。照片和對象都需要「標記」。標記系統的多態性與HABTM關係

  • 標籤是唯一
  • 標籤可以屬於一個照片或對象,或兩者

的Rails提供了一個多態關聯,這導致在具有兩種照片和對象中的belongs_to的關係標籤;然而它不允許標籤屬於都屬於

有人可能通過爲'標籤照片'和'標籤對象'建立兩個獨立的HABTM關係來解決這個問題。

我想知道是否有更高效的方法來實現這一點;或者如果我正在從錯誤的方向接近問題呢?

回答

0

標籤是一種表達事物的方式。

使用一組標籤來說明每種事物可能沒有意義。我可以想象如「1024x768」和「用奧林巴斯相機拍攝」這樣的標籤如果您想說說某張照片時很有用,但如果您想說出關於某個物體的某些內容,那麼這些標籤就沒有多大用處。

比方說,我使用像「藍色」這樣的標籤來引用照片和對象。 {photo_id,「blue」}是否與{object_id,「blue」}相同?我不認爲它確實如此。

在我看來,最有效的解決方案是使用一組標籤來談談照片,而另一組的標籤來談談對象。它也可能對用戶更友好。

+0

我確實看到你在說什麼,這是一個非常正確的觀點。雖然在我們的具體情況下(如果我們要更多地瞭解照片和對象的真實含義),但實際上它是必要的。 – KamaKAzii 2011-05-13 06:55:48

+0

當你隱藏你在說什麼,你降低下載正確答案的可能性。如果*圖片*和* *的對象都不盡相同,但都沒有完全不同,那麼你只是標籤與超關聯。看到接受的答案和廣泛的評論在這裏:http://stackoverflow.com/questions/4969133/database-design-problem – 2011-05-13 09:23:50