我是mongodb的新手,我想創建以下簡單模式。嵌入的mongodb模式設計或參考
,我將描述它在關係的思考: 3表 - >公司,產品涉及
公司有關一對多的交易功能。 產品是相關的一對多的交易。
所以交易表是公司和產品 之間的聯繫,這將具有以下結構
DEAL_ID | company_id | product_id | extra_fields
我應該如何將這個結構實現爲mongodb?我應該使用嵌入式建模還是參考? 你有什麼建議?
預先感謝您。
我是mongodb的新手,我想創建以下簡單模式。嵌入的mongodb模式設計或參考
,我將描述它在關係的思考: 3表 - >公司,產品涉及
公司有關一對多的交易功能。 產品是相關的一對多的交易。
所以交易表是公司和產品 之間的聯繫,這將具有以下結構
DEAL_ID | company_id | product_id | extra_fields
我應該如何將這個結構實現爲mongodb?我應該使用嵌入式建模還是參考? 你有什麼建議?
預先感謝您。
爲此,我將使用3個表格完成與您在平面,非hierachal或結構化SQL關係數據庫中完全相同的操作。
你可以說交易會嵌入到公司,也許他們可能會成交,但是如果交易經常變化,你可能會看到由於非原地更新而導致的頂級文檔中的碎片。
就地更新由不需要文檔移動到磁盤另一部分以便能夠存儲的指定。這當然要比需要移動到磁盤的新的連續部分的磁盤要快得多,而且要小得多。不僅如此,如果你不幸的話,剩下的空間可以留在那裏,而不會被填滿。
解決這種情況的唯一方法是定期運行db.repair()
,某些用戶出於某種原因執行此操作。
而是考慮到這一點以及交易的使用和查詢模式,我認爲他們應該進入他們自己的表格。
這取決於...看到這裏:http://docs.mongodb.org/manual/applications/data-models/ – heinob
我同意@heinob,這一切都取決於你有什麼數據和你將如何去用它。現在還沒有確切的答案說這樣或那樣做。除非你想獲得關於你想**的事情的具體**,否則其他任何事情都只是猜測。 –