如何防止一個網站的兩個不同的管理員用戶創建一個客戶記錄使用相同的客戶ID。
背景資料:
- 檢查由允許範圍的數字:
網站我與自動生成的實例合作一個名爲「客戶號」的基礎上例行/方法,做以下號碼使用cust_number_range表。
- 從客戶表中找出正在使用的最高號碼。
- 顯示「創建新客戶」表單上的下一個可用編號。
- 當點擊提交按鈕時,在嘗試保存記錄之前,我再次檢查客戶表以確保我已經計算出的數字,因爲下一個可用的表未被使用。如果它仍然可以,那麼我保存到數據庫。
這裏的數據庫是什麼樣子:
customer table
=====================
id integer - primary key
custnumber integer
fname varchar(255)
lname varchar(255)
cust_number_range
====================
lower_range integer
upper_range integer
id integer - primary key
我碰到的問題是,如果兩個管理員點擊「提交」新卡斯特記錄在完全相同的時間,系統將創建兩個記錄具有相同的custnumber。 以下是我的一些問題:
- 是否使custnumber字段成爲pk的一部分可選?這意味着,這真的是「適當的」解決方案嗎?
- 我還有什麼其他的方式來解決這個問題?
謝謝。
您使用的是什麼關係型數據庫管理系統,它對您如何執行此操作有所幫助。 – 2013-04-21 22:36:53