これはSQLよりもデザインパターンの問題だと思います。イベント/時間と基準に基づくSQL
私のアプリケーションでは、ユーザーは参加して、ショップを作成し、その店舗で商品をロードできます(つまり、ユーザー、ショップ(1対1)、商品(店舗と多対1)があります)
私は時間と基準に基づいて特定の作業を行うことができるようにしたいと考えています(ただし、1回のみ)。たとえば、ユーザーに参加して1週間後に店舗がない場合、メールを送信したい場合や、ショップけどなしの製品は、電子メールなどを送信する - しかし、私は一度だけ、それをやりたいで私の頭をやっているだけ実行した後に
その - 。たとえばので、私はこのクエリ
を持っていたと言うことができますselect * from user where joineddt < '1 week ago date'
3時間ごとに実行され、SQLを起動した後、何らかのイベント(例:電子メールを送信する)私は、このスクリプトがもう一度起動されたかどうかを確認して、すでに処理されているユーザーを拾わないようにしたい。私は「イベント」テーブルを導入することを考えました。ユーザーのイベントが一旦解消され、そのイベントのエントリが記録されますが、それは再び動作しないように見えます。たとえば「userjoined」イベントのためにできるイベントにエントリがないときに、それは結果を返しませんイベント
select * from user a
left join event b on b.user = a.id
where a.joineddt < '1 week ago date'
and b.event = 'userjoined'
and b.id is null
、ユーザー、私は、イベント表を持っていたIDを持っていたと言う...しかし、実際にIこの 'userjoined'イベントのイベントテーブルにイベントが存在しないユーザーを返すようにしますか?
誰も私が示唆していることをする方法を考えることができますか?
ありがとう - 私が探していたもの! – Xrender