如何在laravel中生成唯一的序列号

时间:2015-04-06 05:55:27

标签: mysql laravel serialization eloquent uniqueidentifier

我正在尝试为我的客户构建一个应用程序,我的客户希望保留其客户的所有数据。他想为他的客户生成一个唯一的序列号,序列号必须是连续的。他的要求是 - 1.应该有一个表格来创建客户条目。 2.以该形式,应该有唯一客户ID的字段。默认情况下,它的值应该是一个序列号,其值为前一个序列号+1。如果他喜欢,他可以更改该字段中的序列并提交表单。

我发现一种更简单的方法是从数据库中获取最大ID并将其递增+1。但是,如果两个人试图插入数据库怎么办?在这种情况下,数据库中会有重复的序列号。

现在,我需要一些帮助来了解如何为每个条目生成唯一的顺序序列号。我将使用mysql数据库。

提前致谢

1 个答案:

答案 0 :(得分:0)

执行此操作的最佳方法是创建一个包含一列序列号的附加表。每次加载表单时,您都会从此表中获取最大序列号+1并插入该值,并将表单上序列号字段的值设置为该值。这将确保当两个人同时加载您的表单时,他们仍然会有不同的序列号。这将阻止那些将插入数据的人感觉他们需要相互竞赛才能获得该序列号。

其次,在负责存储表单信息的表上,在序列号字段上放置一个唯一键,这将确保序列号在插入表格时始终是唯一的。

第三,尝试在此表中插入一个非唯一的序列号会因为唯一键而生成sql错误。在尝试保存表单数据之前,请确保使用unique验证程序验证它。