3

野球のスコアをユーザーに送信する (例) アプリケーションがあります。使用者は、特定のチームにどのイニングのスコアを送信するかを選択できます (たとえば、「7 イニング後にヤンキーのスコアを送信してください」)。「その他すべて」のチームの設定もあります (例: 「8 イニング後に他のチームのスコアを送信してください」)。

これらの設定は、ユーザー、チーム ID、およびイニング数を格納するテーブルに保存されます。チーム ID '99' は、'その他のすべてのチーム' に使用されます。したがって、ユーザーのレコードは次のようになります。

**User - Team - Innings**

Bob - 13 (Yankees) - 7

Bob - 99 (all other teams) - 8

次に、スコアを確認して通知を送信します。ヤンキースの試合が 7 回終了したことを知り、ボブにメッセージを送信します。

その20分後、同じヤンキースの試合が8回まで進んだ。ボブは 7​​ イニング後にメッセージを受け取ったので、今回はメッセージを受け取るべきではありません。

次にジュリーについて考えてみましょう。

**User - Team - Innings**

Julie - 13 (Yankees) - 8

Julie - 99 (all other teams) - 7

ジュリーは設定を使用して、「8 イニングまで待つ必要があるヤンキースのスコアを除いて、7 イニング後にすべてのスコアを送信してください」と言います。今度は、ヤンキースの試合で 7 イニング後、ジュリーは通知を受け取るべきではありません。

最後に、ダーク。ダークは少し混乱しています:

**User - Team - Innings**

Dirk - 13 (Yankees) - 7

Dirk - 99 (all other teams) - 7

彼の Yankees 設定はかなり冗長ですが、同じ通知を 2 回受信しない限り、問題はありません。


ヤンキースの試合は 7 回を終了したところです。テーブルにクエリを実行し、誰がアラートを受け取る必要があるかを判断する最良の方法は何ですか?

私はSQLにかなり慣れていませんが、平易な表現を作成できると思います:

アラートの送信先:

< X イニング後にすべてのチームを気にしない限り、X イニング後にチーム A チームを気にする人 (彼らはすでにアラートを受け取っているはずです)

プラス

< X イニング後にチーム A も気にしない限り、X イニング後にすべてのチームを気にする人 (彼らはすでにアラートを受け取っているはずです)

(これが実際にダークのシナリオをカバーしているとは思いませんか?)

私の最善の推測では、チームとイニングに一致する WHERE 句を作成する必要がありますが、上記の基準を満たす同じユーザーの同じテーブルにレコードがあるかどうかもテストします。

これは私をはるかに超えています-Googleでどのテクニックを使用するかさえわかりません。まともな質問のタイトルすら思いつきませんでした:/

4

1 に答える 1