dedlfix: Kann man mit PDO Klassen-Arrays aus der Database fetchen

Beitrag lesen

Tach!

ein auf 2 Byte gestützter Enum kann 65536 aufgezählte Werte repräsentieren, von denen aber nur einer gleichzeitig aktiv ist. Das ist also kein 1:n. Verwendest Du ein Enum als Flag-Leiste, sind es 16 Werte (Flag-Bits).

Enum ist ein String-Typ. Konkret gesagt kann der genau einen Wert von einer vordefinierten Liste repräsentieren. Die interne Speicherung als Byte oder ähnliches, hat keine weitere Bedeutung für den Verwender. Man kann da nicht auf Bits zugreifen. Man liest und schreibt einen Wert aus der Liste als String.

Die Du beim Tabellendesign festlegen musst; du kannst nicht irgendwann sagen, dass Bit 4 für "Regina" stehen soll, während es anfangs für "Fastix" stand.

Also, man kann Einträgen der Liste einen anderen Wert geben, aber wenn Datensätze diesen Wert hatten, wird der dabei zum Defaultwert geändert.

Ein SET ist, wenn ich das richtig verstanden habe, das gleiche in Grün

Nö, ein Set ist sozusagen eine Kombination aus Bit-Positionen. Da braucht man etwas mehr Platz, weil jeder Wert durch eine einzelne Bitposition repräsentiert wird. Der ENUM kann 256 Werte in einem Bye darstellen, das SET nur 8, die aber in beliebigen Kombinationen.

Ob man effizient alle Rows finden kann, in denen ein Enum das 4. Bit gesetzt hat, oder in denen ein Set einen bestimmten Eintrag enthält, weiß ich nicht. Angesichts der Speicherung als Bitmap würde das für mich einen Full Index- oder Table-Scan erfordern.

Man kann sowieso nicht über Bits oder Bytes auf ENUM oder SET zugreifen.

dedlfix.