我有一个需要为每个项目生成唯一标识符的应用程序,此标识符是一些首字母的混合,日期和每个新项目的4位数字。棘手的部分是最后4位数应该每月重置一次。
例如,假设我们有UID “SP-20121218-0001”,最后4位“0001”将增加到1月份,然后是1月份创建的第一个项目应该“SP-20130101-0001”。
有什么想法吗?
答案 0 :(得分:2)
创建一个包含字段Year,Month,CurrentCount的表。编写一个存储过程,为当前年份和月份选择一行,如果不存在则创建它并增加该数字。
答案 1 :(得分:1)
对我来说,这听起来像是存储功能的完美用例。
在postgresql中你可以通过一个序列,然后使用一个函数从序列中选择一个值并结合当前日期和日期转换时重置序列来完成这个。
最好的方法是不打扰重置序列,只使用由日期补充的唯一号码。
答案 2 :(得分:0)
一种可能的选择是基于数据库序列的最后4位数,然后有一个单独的进程,它将在新的月份开始时重置该数据库序列。