-3

これを説明するのは少し難しいです。

私はシステム (LAMP プロジェクト) を持っています。ユーザーが製品を保存すると、システムが自動的にその番号を生成する機能が 1 つあります。

たとえば、システム内の現在の最大数は abc-112 です。したがって、新しい製品を作成して保存すると、この新しい製品の属性として自動的に保存された番号 abc-113 が取得されます (関数は最大の番号とプラス 1 を見つけて返します)。

ここで私の問題は、システムに複数のユーザーが製品を同時に保存すると、すべての新しい製品は abc-113 を取得しますが、abc-113 / abc-114 / abc-115 などは取得しません。

誰でもこれを解決する方法を知っていますか? 多くのTHX!

編集:

生成コードは実際には上で書いたよりもはるかに複雑です。説明することはあまり重要ではないと思っていましたが、多くの人がこれの代わりに DB-autoincrement index を使用できると考えていたようですが、申し訳ありませんが、計算ロジックはできません。変更できません。たとえば、新しい製品の場合、値は abc-112 または abc-1502 または abc-2293 にすることができます。これは、製品のカテゴリとカテゴリの親カテゴリと製品タイプに基づいています。1、2、3、4 だけではありません。 ,5,6,7...

とにかく、「DB」の提案にはthx

編集#2:

誰も理解できないようですが、ロックを作成することですでに解決しました。英語が下手で申し訳ありません。Thxすべて同じです!

4

1 に答える 1

4

唯一の問題は、自動インクリメント機能を使用していないことです。

したがって、この関数を削除して、最大の数とプラス 1 を見つけ、データベースがそれをインクリメントできるようにします。

問題が解決しました。

于 2013-08-05T20:13:25.767 に答える