Ein Objekt hat zwei Bit-Flags, die unabhängig voneinander true (1)
oder false (0) sein können, damit ergeben sich 4 mögliche Zustände
pro Datensatz:
1 1
1 0
0 1
0 0Die Tabelle sieht entsprechend aus:
Id Payload Flag1 Flag2
1 ... 1 0
2 ... 1 1
3 ... 0 0
Ich hab nicht alles verstanden, aber warum verwendest du hier zwei Bitflags statt einer Zahl wo du die entpsrechenden Bits setzt?
Dann ließe sich die Abfrage auch einfach mit einer Bedigung aufbauen (übrigens dürften Bitoperation nicht zeitkritisch sein, da diese zusammen mit incr, decr die maschinennahsten Operationen sind und zumindest die ausführungszeit extrem schnell ist)
Also in etwa so:
Id Payload Flag
----------------------------------------------
1 ... 1
2 ... 3
3 ... 0
und dann:
[ ] Elemente mit Flag 1 gesetzt
WHERE Flag & 1
[ ] Elemente mit Flag 2 gesetzt
WHERE Flag & 2
[ ] alle anderen Elemente (beide Flags sind 0)
WHERE Flag & 0
und auch möglich:
[ ] alle Elemente mit Flag1 und Flag2
WHERE Flag & 3
Struppi.