我想做以下事情:
基本上我对事件表有以下设计:
事件:
- ID
- 代码
- 日期
创建新事件时,我想做以下事情:
检查是否有任何可用的代码。如果日期已经过去,则可以使用代码。
$code1 = select code from event where date_add(date, INTERVAL 7 day) < NOW() AND code NOT IN (select code from event where date_start > NOW()) limit 1
如果代码可用,请获取该代码并将其用于新事件。
insert into event (code, date) VALUES($code1, NOW())
如果代码不可用,则生成新代码。
问题是我担心当同时创建 2 个事件时,它们都会得到相同的代码。我怎样才能防止这种情况?
目标是为每个事件分配一个 1-100 的代码。所以因为 1-100 只是 100 个数字,我需要回收代码,这就是我检查旧代码以分配给新事件的原因。我希望能够通过回收旧代码为事件分配 1 到 100 的代码。我不想将相同的代码分配给 2 个不同的事件。