我來自MySQL
背景,我正試圖圍繞MongoDB
環繞我的頭。特別是,我正在努力構思我應該如何模仿n:n
關係的「蒙戈方式」。如何在MongoDB中建立多對多關係(對於MySQL用戶)
在這個例子中,假設我們有兩個collections
:users
和interests
。我們需要能夠代表或查詢我們的數據幾件事情:
- 用戶的利益
- 用戶評價的興趣,例如「喜歡」或「不喜歡」
- 用戶給定的利率
- 計數器(可遞增/遞減)的利息各級別
- 利息名
在MySQL
,我會在用戶ID 和兩個興趣ID上創建了索引爲users_interests
的表。對於櫃檯,我會爲每種評級類型設置單獨的列,並且每次用戶評級/取消評級時,都會進行交易,以確保計數永遠不會錯誤。我試過reading about some schema designs,但無濟於事。
你能幫助失落的靈魂找到方法嗎?
爲什麼要存儲該ID?您不太可能重新命名利益,但保留參考,對吧?另外,你必須執行'$ in'來顯示喜歡的名字。 – mnemosyn
@mnemosyn通常情況下,你有兩種情況之一的代碼路徑:1:你有興趣想看看哪些用戶有,或者2:你想看看用戶有哪些興趣。首先,你已經有了這個名字,現在你只需要對一個ID(更快的查詢)而不是一個字符串進行查詢。第二,你有一個ID列表,你再次在對象ID上查詢。此外,如果您更改興趣名稱,則不必通過每個用戶條目進行重構來更新興趣名稱,因爲您需要的僅僅是興趣收集中特定興趣的引用ID。希望這可以幫助! – Petrogad
@mnemosyn如果我決定大寫的興趣,從「釣魚」到「釣魚」或什麼? – ceejayoz