2011-11-28 64 views
0

我正在創建一個數據庫,以便我可以訪問來自大學的人員的姓名。但我想爲每個人(如1012607)創建一個註冊ID,其中前兩個數字是年份(2011年爲11個),第三個數字是他們註冊的學期(1個在年初和2在年底)。如何在數據庫上設置特定的註冊表

其他4位數字是遞增的。我不知道如何在MySQL中對前綴數字進行編碼,只能更改最後4位數字,並且每次在您每次重新註冊時都會更改前兩位數字。有人可以幫幫我嗎?

+0

您是在編寫一個利用數據庫的應用程序,還是您只是在設計數據庫?通常我會希望這樣的邏輯能夠被應用程序處理,而不是直接在數據庫中處理。 – Jason

+0

你爲什麼想這樣做?這是一個智力練習嗎?或者它是與一些現有系統集成?我試着避免這種事情的通話費用,這是一大堆粉紅色的管狀無脊椎動物 –

回答

1

我建議你有一個表的設計類似如下:

ID - auto increment Identity(1000,1) 
Year - date 
Semester - int 

然後報告時用就可以了,你上面提到的邏輯。不必那麼複雜。

+0

我可以創建一個程序或功能來做到這一點? – ymorenz

+0

肯定爲什麼不。像上面提到的那樣創建一個包含3列的表格,然後創建一個只包含Year + Semester + ID列的存儲過程,以提供您想要的內容。 –

+0

或者您可以添加DateRegistered,使用Auto inc鍵入表格,然後編寫一個函數來構建基於日期的東西中的'智能'數字,以及如果需要填充前導零的id的最後四位數字。給你一個代理鍵,贏,贏,贏。 –