Philipp Hasenfratz: "standard-konformes" SQL für DB-Abstraktion

Beitrag lesen

Halihallo Andreas

Ich lasse mir (in Perl) von meinem Datenbank-handle keinen Hash (assoziativen Array) zurückliegern, sondern eine Liste.
Was ist der Unterschied zw. einem Hash und einer "liste"?

Ein Hash ist ein assoziatives Array, als Index dient also ein frei festlegbarer String.
Bei einem Array (Perl-Sprachgebrauch) handelt es sich um ein Array, auf dessen Elemente
ausschliesslich über den vom "System" gegebenen numerischen Index zugetriffen werden
kann. Bei PHP ist das ja vermischt, oder?

Eine Frage nur so nebenbei: stimmt es, daß MySQL kein Boolean kennt? Danach habe ich nämlich fast verzweifelt gesucht, und bin jetzt auf integer (0, 1) umgestiegen, was allerdings nicht so optimal ist.
Soweit ich weiß kann MySQL das nicht, das nervt mich auch.

Ja, http://www.mysql.de/doc/de/Column_types.html Boolean gibt's net...

Zumal ich dann das Ergebnis der DB-Abfrage teilweise noch "überarbeiten" muss. Ich verwende hierfür in MySQL den Datentyp SET und stelle nur '0' und '1' zur Auswahl, keine Ahnung ob TINYINT vielleicht besser/schneller wäre, vielleicht kennt ja jemand anders hier eine gute Möglichkeit?

IMHO ist TINYINT und SET die einzigen zwei vernünftigen "Workarounds". Alles andere
verbraucht mehr Speicher, oder müsste als CHAR(1) gespeichert werden... Mit Zahlen
kann MySQL bekanntlich gut umgehen und SET wird intern auch als solche behandelt.
Beide brauchen nur ein Byte und selbst wenn es BOOLEAN gäbe, würde er auch ein Byte
beanspruchen (ein Zusammenziehen mehrerer BOOLEANS wäre unsinnvoll).

Viele Grüsse

Philipp