[英]Redesign the primary key of MySQL table
我們需要記錄一些每年都會從外部來源續簽的正式收據(請考慮一些銀行用例)。 因此,我們有一個帶有主鍵的表,它是收據號以及其他字段,例如issue_date
,amount等。
到目前為止,我們的應用程序邏輯將更新先前的收據。 但是現在我們想要版本號。 默認添加0列,並為具有相同收據編號的后續交易指定遞增版本。
例如 ,receive_no 1將被處理為
receive_no-> 1,version_no-> 0和下一個相同的收據:
receive_no-> 1,version_no-> 1。
因此,我的問題是如何正確設計桌子? 我是否使用組合鍵作為版本號? 使用Java JDBC代碼進行數據訪問時,此邏輯是否易於編寫? 請讓我知道您的輸入。
在表上實現自動遞增的主鍵(通常,這是一個好主意)。
在receipt_no, version_no
上創建唯一索引。
添加一個before insert
觸發器,以在執行插入操作時確定新的version_no
。
假定您沒有定期手動更改兩個字段中的任何一個。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.