2015-04-06 94 views
-1

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

我发现一个更简单的方法来做到这一点是,从数据库中获取最大ID并增加+1。但是,如果两个人试图插入入口数据库呢?在这种情况下,数据库中会有重复的序列号。

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

在此先感谢

+0

首先,您需要编辑您的问题以包含示例代码。你的问题不是很清楚。如果你试图在laravel中生成一个随机数,你可以使用str_random(40);功能。 40这里是生成字符串的长度 – Digitlimit 2015-04-06 07:24:01

+0

OP不是试图生成一个随机字符串。 – 2015-04-06 07:46:05

+0

而问题太广泛。 – Mysteryos 2015-04-06 09:19:17

回答

0

做到这一点,最好的方法是创建一个额外的表格,表格中的序列号一列。每次表单加载时,都会从此表中获取最大序列号+1,并插入该值,并将表单中序列号字段的值设置为该值。这将确保两个人同时加载您的表单时,他们仍然会有不同的序列号。这将阻止将要插入数据的人觉得他们需要彼此竞争以便首先在那里获得该序列号。

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

第三,试图插入一个非唯一的序列号到这个表中现在将生成一个sql错误,因为这个唯一键。在尝试保存表单数据之前,请确保使用unique验证程序进行验证。