-3

这有点难以解释。

我有一个系统(LAMP项目),有一个功能,如果用户保存一个产品,系统会自动为它生成一个数字。

例如,系统中当前最大的数字是 abc-112。因此,如果我创建一个新产品并保存它,我会自动将数字 abc-113 保存为这个新产品的属性。(一个函数会找到最大的数字并在其上加 1 并返回)

现在我的问题是,如果系统中有超过 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”的建议

编辑#2:

似乎没人能理解,好吧,我已经通过锁解决了,对不起我的英语不好。都一样!

4

1 回答 1

4

The only your problem is that you aren't using autoincrement feature.

So, get rid of this function to find the biggest number and plus 1 and let database increment it, as it was designed for.

Problem solved.

于 2013-08-05T20:13:25.767 回答