細分主鍵
主鍵本身是很簡單的,但是圍繞他產生的故事就不是那麼簡單了。
1、 管理
這個是最重要的,沒有規矩不成方圓,主鍵要如何管理一定要實現確定好了,甚至有必要為此寫一個規範。比如是全公司採用相同的方式處理主鍵,還是根據專案、產品來各自管理?還是由專案組成員自行決定?這些都是需要實現說清楚的。
2、 定義
不是說“主鍵”這個詞的定義,而是主鍵用什麼,比如用GUID還是用int,還是年月日時分秒+流水?
3、 生成
主鍵用什麼確定好了之後就是如何生成了。比如GUID,是在程式裡生成,還是由資料庫的欄位預設值來生成?採用無序的GUID還有有序的GUID?再比如int,是採用MSSQL 的自增,還是自己管理。如果自己管理的話,那麼是寫一個儲存過程還是在程式碼裡面寫個函式(類)?
4、 安全
1,2,3,4這種主鍵是否夠安全?是不是因為不安全就不能用了?一定要改成GUID才行?那麼改成GUID了,是否還需要進行安全判斷?什麼情況下可以用int,什麼時候不能用(因為安全原因)?
5、 效率
主鍵要不要設定索引?聚集的還是非聚集的,還是不用索引?int的和GUID的效率到底差了多少?
6、 移植
要不要考慮資料庫的移植,以後會不會更換資料庫?換資料庫了會不會崩潰?
7、 資料合併
幾個分公司的資料需要合併到一起,主鍵是否會衝突(重複)?
說這些的目的就是想讓大家討論的時候更明確一些,雖然我們都在討論主鍵,但是這個範圍也是很大的。
歡迎大家繼續補充。
相關文章
- 主鍵分類
- [資料庫][分庫分表]分庫分表之後,id主鍵如何處理資料庫
- 主鍵命名
- 主鍵和外來鍵
- 分庫分表的 9種分散式主鍵ID 生成方案,挺全乎的分散式
- [保姆教程] [Postgres] 1分鐘深入瞭解Postgres主鍵自增
- 通過外來鍵找主鍵
- 主鍵為聯合主鍵時,索引B+樹結構索引
- 主鍵可以重複?
- postgresql自增主鍵SQL
- 分散式主鍵生成分散式
- 資料庫主鍵、從鍵(易懂版)資料庫
- Mysql關於自增主鍵,自增主鍵優化總結MySql優化
- MySQL 分割槽表,為什麼分割槽鍵必須是主鍵的一部分?MySql
- 向Mysql主鍵自增長表中新增資料並返回主鍵MySql
- 快速採集抖店商品圖,一鍵批量獲取多款商品主圖、細節圖
- mybatis獲取自增主鍵MyBatis
- MyBatis 獲取自增主鍵MyBatis
- indexedDB 資料庫主鍵Index資料庫
- Kudu主鍵選擇策略
- 檢視SQLSERVER主鍵列SQLServer
- 細粒度影象分類
- tessellation 曲面細分 on AndroidAndroid
- 新的主鍵和外來鍵的語法
- ClickHouse主鍵索引最佳實踐索引
- MySQL 主鍵自增也有坑?MySql
- PostgreSQL如何設定主鍵序列?SQL
- MySQL 中的自增主鍵MySql
- Mac技巧4:鍵盤鍵位分佈和快捷鍵Mac
- 女策劃更能抓住女玩家的需求? 90後女主策認為細節是關鍵
- mysql主從複製詳細部署MySql
- 鍵盤各個鍵的功能圖解 電腦鍵盤全圖詳細圖解
- 不要使用業務鍵作為資料庫主鍵資料庫
- MySQL新增自增主鍵的坑MySql
- postgresql重置序列和自增主鍵SQL
- PostgreSQL中如何高效使用UUID主鍵?SQLUI
- 主鍵的建立、新增、刪除操作
- 資料庫主鍵 ID 生成策略資料庫