這個問題可能更適合程序員.stackexchange。如果是這樣,請遷移。實際上有多少個連接可行
我目前正在思考典型數據模型的複雜性。大家都知道數據模型應該是標準化的,但另一方面,規範化的數據模型需要相當多的連接才能在以後重新組合數據。根據所涉及的表的大小,連接可能是昂貴的操作。所以我試圖弄清楚的問題是,人們通常會如何進行這種權衡?即在實踐中,在設計數據模型時,您會在典型查詢中找到多少接點?在單個查詢中計算多個連接時,這會特別有趣。
舉個例子,假設我們有擁有房屋的用戶,其中有房間,其中有抽屜,其中包含物品。在上面解釋的用戶,房屋,房間,抽屜和物品的表格中進行標準化時,以後需要我加入5個表格,當獲得屬於某個用戶的所有物品時。這對我來說似乎非常複雜。
最有可能也會涉及表格的大小。用少量數據連接五個表格並不像三個具有數百萬行數據的表格那麼糟糕。或者這種考慮是錯誤的?
5表只有4個連接。並不是很多。在所有查詢中,您不需要全部5個表中的數據。如果你有更少的表(非規範化),你將有更大的表來處理所有查詢。 –
就像ypercube說的,5桌並不多。 (我通常試圖限制單個查詢中的表連接,以便在屏幕上可視化 - 這意味着大約20個表格左右:))但是如果在示例應用程序中大多數負載來自用戶項目查詢,那麼您可以考慮添加一些冗餘,將用戶標識添加到項目表中 - 確保使您的特定查詢更快。當然,你必須仔細設計你的記錄插入和更新邏輯,以避免產生衝突的數據。像往常一樣,沒有「一刀切」的解決方案。 – Arvo