Mailinglisten-Archive |
Hallo kiri! Was du ganz genau willst, kann ich mir immer noch nicht vorstellen, hier aber ein Erkl=E4rungs-/L=F6sungsversuch: (Nimm es mir nicht b=F6se, wenn ich wieder am Thema vorbei schiesse. Aber es war ja meine Zeit, die ich mit Gedanken vergeudet habe...) ;-) ALSO: Du mu=DFt einfach mehr Bitweise rechnen, sonst geht es nicht. Angenommen, du hast die Zahl 52, die deine Gruppenzugeh=F6rigkeit repr=E4sentiert, so kann sie nur 3 Gruppen repr=E4sentieren, da 52 bin=E4r 0110100 ist. Somit w=E4ren deine passenden GruppenIDs 4 - 0000100 + 16 - 0010000 + 32 - 0100000 --------------- =3D 52 - 0110100 Errechnen kannst du sie dann also nur mit Dezimalzahlen, die den Logarithmus zur Basis 2 haben. Du verkn=FCpfst die Gruppenzugeh=F6rigkeit mit dem logischen ODER du addierst sie einfach. Mit dem UND findest du dann heraus, ob eine GruppenID in der Zahl vorhanden ist. Der gr=F6=DFtm=F6gliche Wert f=FCr deine Gruppenzugeh=F6rigkeit ist somit 2 HOCH(Anzahl der Gruppen). Die kann dann u.U. sehr hoch sein, halt potenziell zur Anzahl der Gruppen. Wenn es das ist, was du willst, hier meine Meinung: Bei einer =FCbersichtlichen Anzahl von Gruppen sicherlich machbar und u.U. auch schneller, nur bei einer gro=DFen Anzahl von Gruppen, die m=F6glicherweise noch variiert ist die n:m Tabelle wesentlich effektiver, weil du um einiges schneller Verkn=FCpfungen wieder l=F6sen kannst und neue erstellen. Zudem hast du es =FCbersichtlicher. Interessant aber, im Falle dessen, du willst herausfinden, ob ein "Ding" in mehreren bestimmten Gruppen gleichzeitig ist, dann kannst du die IDs ja einfach addieren und mit UND testen, ob das richtige rauskommt. In der Hoffnung auf das erl=F6sende "Das wars" und mit der bangen Bef=FCrchtung "Das wars immer noch nicht" gruss schroeder
php::bar PHP Wiki - Listenarchive