比如我有模型User
和Post
Effeciently從 「外鍵」 查詢用戶名OBJECTID
用戶
{
"_id": ObjectId("pretendThisIsAUserObjectId"),
"name": "someUser"
}
後
{
"_id": ObjectId("pretendThisIsAUserObjectId"),
"title": "blah blah",
"user_id": ObjectId("pretendThisIsAUserObjectId"),
"content": "more blah"
}
用戶有很多的職位。所以我們有user_id
存儲在Post
。因此,當我們列出每個用戶的帖子時,我們將有N + 1個查詢(N個帖子加上1個用戶名查詢),因爲我們沒有加入MongoDB。
我們是否還可以將用戶名存儲在Post
中進行優化?
關於存儲用戶名而不是ID的好主意! –
是否適合MongoDB的「denormalisation」?我認爲數據庫規範化僅適用於具有模式的數據庫而不適用於無模式的MongoDB –
沒有規範化適用於具有模式的數據庫,解規範適用於不具有模式的dbs,但據說您可以將SQL技術解除規範化以使其更快,這在大型網站中是很常見的做法。 – Sammaye