Database-Design

餐廳應用程序的 No-SQL 數據庫設計

  • October 26, 2014

我一生都在使用 SQL 數據庫,現在我正試圖進入 NoSQL 世界。我正在尋找一條關於實現這一目標的最佳實踐的建議。

假設我有一張桌子,其中包含菜單上的所有餐點,而另一張桌子則包含服務員資訊。我想為訂單創建第三個表。使用 NoSQL 數據庫進行存檔的最佳實踐是什麼?

在傳統的 SQL 中,我會創建一個OrdersID指向服務員 ID 的外鍵呼叫的表。我會創建另一個將餐食 ID 與訂單 ID 相關聯的表格。

在 NoSQL 數據庫中執行此操作的推薦方法是什麼?

您必須考慮到廚房裡會有一個“客戶”在顯示訂單。

如果有任何相關,我將使用 parse.com 作為後端。

你好!

由於 NoSQL 數據庫通常不支持連接,它們希望您以非規範化的形式儲存數據。(所以,把 codd 規範化規則書扔掉。開個玩笑)。在這種情況下,第三張表最好有重複的值,例如(orderid、ordertime、

$$ itemnames $$, 服務員姓名, orderserviced yes/no, servicetime, …)。itemnames 可以是許多 NoSQL 數據庫支持的列表類型。除了一些數據庫之外,並非所有數據庫都支持二級索引查詢。您可以查詢orderserviced=no的所有訂單,獲取所有未結訂單。 如果其中一張表很小並且可以由應用程序記憶體,您仍然可以在應用程序級別執行類似於連接的操作。您可以對 id 進行雜湊查找並獲取實際值。

通常,您應該意識到 NoSQL 數據庫具有有限的功能。但它們在架構方面提供了更大的靈活性,並且通常針對大容量應用程序和集群/HA 進行了調整。

引用自:https://dba.stackexchange.com/questions/80954