2011-11-28 66 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的最后四位数字。给你一个代理键,赢,赢,赢。 –