2013-12-22 40 views
0

我們需要記錄一些每年從外部來源更新的正式收據(請考慮一些銀行業務用例)。所以我們有一張主表作爲收據號碼和其他字段,如issue_date,金額等。重新設計MySQL表的主鍵

直到現在我們的應用程序邏輯會更新以前的收據。但是現在我們想要版本號。列將被添加默認值爲0,並且具有相同收據編號的後續交易被賦予遞增版本。

對於例如,receipt_no 1將被作爲交易

receipt_no - > 1,version_no - > 0和下一個相同的收據:

receipt_no - > 1,version_no - > 1。

因此我的問題是如何正確設計表格?我是否使用組合鍵作爲版本號?這個邏輯是否易於在Java JDBC代碼中進行數據訪問編碼?請讓我知道你的投入。

+0

對於receipt_no 1(如您的示例),您是否打算讓多個記錄代表每個版本或何時更新許可證,您是覆蓋所有信息並將記錄標記爲版本++? – AgRizzo

+0

只需使用代理? – Strawberry

回答

1

在表上實現自動遞增的主鍵(這通常是個好主意)。

receipt_no, version_no上創建唯一索引。

添加一個before insert觸發器以確定當您插入時新的version_no

這假定您不是經常手動更改這兩個字段中的任何一個。