私は次のことをしたい:
基本的に、イベントテーブルのデザインは次のとおりです。
イベント:
- 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つの異なるイベントに割り当てたくありません。