我們何時需要在數據庫設計中使用1對1的關係?在我看來,如果兩個表格是一對一的關係,他們可以合併成一個表格。這是真的?當我們需要在數據庫設計中使用1對1關係時?
6
A
回答
10
垂直分區的大型表,以減少I/O和緩存的要求 - 單獨的列,經常查詢與罕見。
當
alter table
「太貴」時,向生產系統添加一列。垂直分區受益於表(連接)消除 - 提供優化器 支持它(再次減少I/O和高速緩存)。
Anchor modeling - 類似4,但下降到6NF。
0
是的一般。
如果您想要爲列的子集分配不同的權限,可能會有一個例外。
也認爲只有在雙方都需要時纔是如此。
0
原因之一是將頻繁訪問的數據放在一張表中,而在另一張表中訪問的數據極少。它會運行得更快並節省一些內存。
但我必須在我做這件事之前把我的手臂擰得很厲害。
1
有時它對桌子鎖非常有用。當您將一列添加到數據庫時,整個表將被鎖定,直到完全重寫。當你的數據庫有100k行時,這幾乎沒有影響。但如果你有100M行或1B行,這是一個完全不同的故事......
這對避免佔用太多空間的死行也很有用。如果您使用的是MVCC,並且您的某些列經常被覆蓋,偶爾可以將它們放在單獨的表格中。可以說,自動吸塵最終會啓動,但爲了節省硬盤驅動器的工作,最好在單獨的表格中抽出幾個int字段,而不是整行文本,varchar(n)和誰知道還有什麼。
最後一個原因是在ORM中濫用select *
。例如,如果您要存儲圖片或博客帖子/文章,則可以將blob /文本字段存儲在單獨的表格中。因爲每當它由於某個原因被加載時,ORM將加載整行。當你只需要你的圖像或文章的URL時,你想要的最後一件事就是從數據庫中提取整個二進制/文本;但你的ORM將做到這一點......
相關問題
- 1. 數據庫設計1對1關係
- 2. 1-M關係數據庫設計
- 3. 關係數據庫設計:兩個1對多的關係
- 4. 數據庫設計:引用多個1到0..1的關係
- 5. 1對1數據庫設計
- 6. 爲什麼有1:1的關係 - 數據庫設計?
- 7. 數據庫:1:1的關係
- 8. 1對1關係核心數據iOS
- 9. 1對1關係
- 10. 在關係數據庫中存儲1:1用戶關係的最佳方式
- 11. EntityFramework:數據庫設計m到1的關係
- 12. 我需要在設計數據庫
- 13. 需要用2個1 *關係
- 14. 當我使用DateTime?(Nullable)類型時,'ToString()'需要1個參數
- 15. 一對一關係(1:1)
- 16. 在關係數據庫中查找「1對3」鏈接
- 17. 對於與同一個表具有1對1關係的多個表,最佳數據庫設計是什麼?
- 18. Rails:N + 1問題...需要統計數據
- 19. 建模數據庫中的1到1..n關係
- 20. 多對多關係數據庫設計
- 21. 數據庫設計一對一關係
- 22. 關係數據庫設計
- 23. 關係數據庫設計
- 24. 數據庫設計/關係
- 25. 數據庫設計關係
- 26. 當我們創建表時,我們是否需要指定關係的基數?
- 27. 數據庫關係我爲什麼要使用它們?
- 28. 設計我們的數據庫,表結構,關係
- 29. 用於1對1不識別關係
- 30. 圖形數據庫(neo4j)vs關係數據庫。需要設計幫助