數據庫表設計時一對一關係

在表設計過程中,我無意中覺得一對一關係覺得好沒道理,直接放到一張表中不就可以了嗎?真是說,網上信息什麼都有,也可以說與我一樣困惑的有好多人。感謝大神在網上的活躍,我知道了一對一關係存在的必要性。

1.首先就是這種關係出現的場景是什麼樣子,最好可以舉個實際中的需求。

這樣的場景有很多,比如:就拿最普通的用戶信息來說,數據庫中有一個表爲user,一個表爲user_auth.user表主要存放的字段爲用戶基本的信息(用戶ID、真實姓名、暱稱、真實頭像、性別、職位、教育程度、專業、創建該用戶的時間等),而在user_auth爲驗證表(用戶ID、用戶密碼、郵箱、手機號等)。當涉及到一個具體實體的信息量較多,或者可以分類的時候,就可以使用了1-1,當然只要你能把一個實體的關係拆分成幾個有歸類的部分也可以適用。

2.爲什麼要使用兩個表來維護一對一關係,爲什麼不直接將兩個表中的字段全都放在一張表裏來展示?

如果都放在一張表裏,一:不便於管理(包括查詢執行速度),二:也就達不到關係型數據庫的特性。三:可更好對業務進行事務隔離操作

3.提出這種關係的目的是什麼,就是爲提高我們數據庫查詢條件嗎?

目的:爲第二問答案。這與數據庫查詢條件沒有必然的說法。你說查詢速度或者爲了方便區分查詢管理還說得過去。

還有

  1. 公司和公司地址,總經理和公司,部門經理和部門 都是一對一

  2. 對於小字段小數據量的數據庫來說,放到一起無所謂了,但是對於大字段的數據庫,要添加刪除修改某一個字段,由於數據庫大,字段多,數據庫找到這個字段耗時久,造成鎖表等問題。同時分離存儲大數據的表時,查詢也會節省時間,因爲某些框架會映射表裏面所有的字段,存在一起查詢時會把不需要的字段也映射進來造成耗時過久。還有,大數據量的表分離存儲對於索引創建,讀寫分離,分割等操作都有優勢。

  3. 同2

我覺得這兩種答案比較好。COPY在這裏,記得時常看看,記在心裏。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章