2014-08-29 76 views
-1

我正在開發一個項目,我在下面的使用案例。需要關於數據庫架構的建議

用戶可以有很多標語對他們來說,我們有很多,我們用展示自我暗示在DB預定義的數據的時候,他們開始打字的標記線,我使用Rails。

User has_and_belongs_to_many taglines 

Tagline has_and_belongs_to_many users 

我有獨立的接合表,一切都很好,但現在我需要自定義的用戶標語存儲數據庫,這將是隻屬於特定的用戶。

我應該克隆拉線表並添加用戶ID給它或什麼是處理這些那種情景,如果我們有相同的有使用情況下,像標語多個模型的最佳架構。

+0

我會列'custom'可能添加到您'taglines'表,並用它來過濾標籤建議。 – BroiSatse 2014-08-29 12:08:34

+0

@BroiSatse但是標語表格目前是多對多的,但是自定義用戶標語僅屬於用戶,爲什麼我們需要將兩者混合。 – Senthil 2014-08-29 12:37:50

+0

如果您創建第二個表格,則每次需要更改模型時都需要記住更新兩個表格/模型。您贏了;無法一次性拉出所有用戶標籤。 「多對多」能夠保持「一對多」關聯。只要添加一個驗證來檢查給定標籤是否屬於只有一個用戶,如果它是自定義的。 – BroiSatse 2014-08-29 14:05:35

回答

0

@BroiSatse評論有意義,我也跟着相同。

如果您創建了第二個表格,則每次需要更改模型時,都需要記住更新兩個 表格/模型。您贏了; 能夠一次性拉出所有的用戶標籤。多對多是 能夠保持一對多關聯。只需添加一個驗證,即可檢查 給定的標籤只能屬於一個用戶,如果它是自定義的。

0

您現有的用戶標語表具有多對多的關係,保持這種方式。而用戶表和新customTagline有一個一對多的關係,你爲什麼不創建一個新的表來表示呢?既然你提到了customTagline只屬於一個特定的用戶。

+0

那是非常直接的方式,如果我只拉線你的建議是好的,但我周圍有6款車型,其在相同的情況下跌倒,在這裏我需要創建一個相同結構的6款新車,是可取的? – Senthil 2014-08-29 12:40:50

+0

如果您不確定,那意味着您沒有足夠的數據來做出決定。這意味着在當前情況下,任何選項都是很好的,所以只需創建表格和代碼即可。在您滾動您的代碼時,您將更深入地瞭解這些需求,那就是您將重新進行重構/規格化/非規範化表格的時間。這是我的方式。 @Senthil – neo 2014-08-29 13:02:16

+0

同意,感謝您的及時回覆。 – Senthil 2014-08-29 13:39:56