技術問答
技術文章
iT 徵才
Tag
聊天室
2024 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
第 12 屆 iThome 鐵人賽
DAY
5
1
影片教學
想盡辦法當好一個Junior Backend Developer
系列 第
5
篇
Golang - 如何當好一個junior backend developer - 想想Primary Key設計這件事情
12th鐵人賽
肯尼攻城獅
團隊
不要搶我隊友
2020-09-18 22:18:36
1578 瀏覽
分享至
先想想Primary key這件事情
Natural Key
身分證
如果natural key能絕對不會因為未來系統邏輯改動而失效的,能用就用
Surrogate Key
Auto Incresment
無法保證序號一定是加一遞增,可能會因為delete recorde or rollback的時候放棄這次的序號
性能一定比較好
容易被猜到PK (可以做額外的方式避免:經由hash 或是 額外多存UUID當作公開暴露)
數字ID天然排序
分散式資料庫 PK會有衝到的問題
INSERT record的時候需要拿ID 需要多作RETURNING語法拿到PK的值
合併資料會很麻煩
UUID
因為佔的空間大 性能略差(個人認為很大量的資料才有顯著的差距)
理論上是唯一
沒有排序,無法保證趨勢遞增
可以由Application Server產生UUID在INSERT Record 不需要透過RETURNING語法拿到PK的值
歡迎參觀團隊其他成員的文章~
前端工程師一起來種一棵後端技能樹吧!
用舒服的姿勢開發 Python Project
留言
追蹤
檢舉
上一篇
Golang - 如何當好一個junior backend developer - PostgreSQL安裝與權限探討
下一篇
Golang - 如何當好一個junior backend developer - 來設計貓咪平台的schema吧
系列文
想盡辦法當好一個Junior Backend Developer
共
13
篇
目錄
RSS系列文
訂閱系列文
15
人訂閱
9
Golang - 如何當好一個junior backend developer - 介紹如何撰寫API Blueprint 其實就是MD語法啦!
10
Golang - 如何當好一個junior backend developer - API Blueprint想要Local開發並且架設自己的API Document Server
11
Golang - 如何當好一個junior backend developer - 來認識Gin框架!
12
Golang - 如何當好一個junior backend developer - 講解Gin的簡單範例!
13
Golang - 如何當好一個junior backend developer - CRUD與Binding介紹!
完整目錄
直播研討會
{{ item.subject }}
{{ item.channelVendor }}
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
1064
組
團體組數
40
組
累計文章數
22043
篇
完賽人數
594
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
windows server
linux
css
react
vue.js
熱門問題
[急!] Exchange 系統管理中心 不小心停用了使用者信箱 要怎麼復原
有人公司做過資訊安全演練嗎
excel 如何利用寫入VBA 來做到一鍵執行 「清空剪貼簿」?
從合規的角度上來說微服務架構當前的壁壘是什麼
資料庫系統
WIN11 一直跳出中毒的訊息
PYTHON 工具
windows11 策略編輯器 軟體限制原則失效?
如何讓內網的FortiGate防火牆可以收到韌體更新與下載
有關於Plesk 記憶體使用 的疑惑
熱門回答
WIN11 一直跳出中毒的訊息
如何讓內網的FortiGate防火牆可以收到韌體更新與下載
ORACLE SQL 多筆沖正資料時
有關於Plesk 記憶體使用 的疑惑
PYTHON 工具
熱門文章
PrintNightmare: 沒想到會被 Windows 11 終結
[系統設計]- 容易產生設計盲點
[Day 13] 資訊安全策略的制定與實施
新手入門:無伺服器函數和FaaS簡介
Day1 - 30天學習Python
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}