2015-04-06 1236 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驗證程序進行驗證。