1

問題:

URL 経由で Query-Builder を構築したいと考えています。返されるのは、参加者と参加者データを含むタプルのリストです。データベースには、一意の ID を持つ何百もの参加者が存在します。すべての参加者は、さまざまな参加者データを持つことができます。イベント登録ごとに、データベースに新しい参加者データが作成され、電子メールで参加者に関連付けられます。

例: include|eventid|is|17||include|eventid|is|13__include|unsubscribed|is|True

ANDクエリとORクエリに分けます。
AND

1. include|eventid|is|17||include|eventid|is|13
2. include|unsubscribed|is|True

OR

最初の AND 条件から:
1. include|eventid|is|17
2. include|eventid|is|13

結果構文:

[(participant_id, partidipantdata_id), (participant_id, partidipantdata_id), ...],
例: [(123,1240), (123,959), (123,1124), (123,1450), (134, 1670), ( 156,1950), (123,1450), (156,2000), (220,2100), (234, 1754), (156,1121), (278,1556), (281,1671), (278, 1771), (156,2111), (312,2254), (289,967), (278, 2178)]

質問:
· OR クエリ (participant_id、participentdata_id) を正しく組み合わせる (結合する) にはどうすればよいですか? --> さまざまなイベントに対するクエリには、participant_id が必要です。未登録のさまざまなイベント (participantdata に保存されている情報) に対するクエリには、participantdata_id の
両方が必要です。



問題:
クエリ: イベント #17 AND イベント #13 AND このイベントから登録解除したすべての ParticipantDatas。(結果: 3 つのクエリ: #13 の参加者と #17 の参加者、およびシステム内のイベントでサブスクを解除したすべての参加者)。
したがって、17 と 13 のparticipant_id の交差を行うことができます。ただし、このイベントのすべての unsubs を取得するには、イベント #13 とイベント #17 のparticipantdata_id と unsubs の交差を行う必要があります。ただし、イベントの登録ごとに参加者の新しい参加者データが作成されるため、これは機能しません。#13 と #17 を訪れた参加者は一致しません。それが問題です!

· 問題は AND クエリ (OR クエリの結果の交差) に伴います。

どうもありがとう!クリス

4

1 に答える 1

1

set一致する各レコードの UID を返します。set次に、結合関数と交差関数に組み込まれた -objectsを使用できます。

UID は、考えられるすべての結果に対して一意である必要があります。この場合、考えられる結果の 1 つは特定の参加者データであり、(参加者 ID、参加者データ ID) によって一意に識別されるため、それを使用できます。つまり、 のset代わりに を返すことができますlist

ここではタプルは最も効率的なデータ型ではありませんが、あなたの場合は問題ではないと思います。

于 2013-07-05T10:24:21.077 に答える