2016-09-19 7 views
1

システムは多くのショップで使用されており、各ショップは独自の請求書番号を持っています。PHPとMySQLで連続請求書番号を生成する(同時実行)

SHOPA-0001 
SHOPA-0002 
SHOPA-0003 

SHOPB-0001 
SHOPB-0002 
... 

私がしたことは、MySQLテーブルの最後のIDを選択し、請求書番号を+1することです。私の問題は、1つのショップは、このシステムを実行している複数のPCを持っている場合、2つのレジ係が同時にフォームを提出する場合、それは重複しています。

この問題に対するご意見はありますか?

+0

あなたのIDに3番目の要素、すなわち* SHOPA-COM1-0001 *を使用して、ショップとコンピュータでフィルタリングするように選択してください –

+0

@ Memor-Xこのプロジェクトの要件は、 –

答えて

1

安全性を利用する意図ロックは私の回答Hereと似ています。しかし、ChassisやBrakesのようなセクションがあれば、あなたはSHOPAやSHOPBなどとなります。クライアントサイドでゼロの左パディングを処理するかどうか、またはmysqlでカラム幅int(4 )CONCATLPAD()を使用してください。

その回答に記載されているように、それは並行処理のための安全な方法であり、店舗は互いに分けられています。正しく行われた場合、瞬時にロックされます。

+0

** Intention Locks **ありがとうございます –

関連する問題