簡體   English   中英

重新設計MySQL表的主鍵

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM