Hello,
Ich fange es nun an zu verstehen :)
und ich komm an meine Grenze ;-)
Na, dann mal los, frag mich doch mal *ggg*
(habe mir das gerade noch mal im Hexeditor angeschaut)
Also in meiner Liste steht nun z.B.:
Offen','Zahlungseingang','In Bearbeitung','Pakete werden kommissioniert','Pakete warten auf Abholung','Pakete sind unterwegs'Die Frage ist nun nocht macht es viel an Geschwindigkeit aus wenn jeweils 1-3 Wörter dort stehen?
Unwesentlich, denn die Klartexte stehen hintereinander in der Werteliste Felddefinition der *.frm -Datei
S T A T U S O f f e n Z a h l u n g s e i n g a n g I n B
. . . . . . FF 00 FF . . . . . FF . . . . . . . . . . . . . . . FF . . . .
und so weiter. Statt der 00 stünde der Default-Wert, wenn angegeben.
ENUM bezieht sich auf 65535 Elementen ich gehe mal davon aus das es der max Wert handelt?
Nein, die maximale Anzahl von Einträgen.
Die Maximale Anzahl von verschiedenen Werten, die das ENUM-Feld in der Datendatei annehmen kann. ENUM hat entweder 255 Wert plus Default-Wert oder 65535 Werte plus Default. Bei meiner Version ist zusätzlich immer auch NULL möglich. Wenn man beim Select einen Wert angibt, den es in der Liste nicht gibt, bleibt das Query von vornherein leer.
Aber beziehen sich die Elemente auf das ENUM Datbank Feld oder auf die einzelnen Zeilen. Ich meine damit wenn ich ein Index habe hat der Index nur 65535 Felder?
Hier ist was durcheinandergekommen.
Der Index ist intern und bezieht sich hier auf die Position des ENUM-Wertes in der Definitionliste (s.o.)
Das versteh ich nicht ganz. Wie gesagt ENUM speichert im Prinzip (vielleicht kann ein mySQL Fachmann das bestätigen oder verbessern) nur den Index der ENUM Liste ab, also in deinem Fall, statt 'offen' eine 0 statt 'Zahlungseingang' eine 1 usw. nur du musst beim Übertragen der Daten den Klartext schreiben.
Statt Offen eine 1 und statt Zahlungseingang eine 2
Man muss nicht unbedingt den Klartext schreiben, sondern kann den Index benutzen. Nur muss man den kennen! Wenn man einen falschen Index benutzt, der aber trotzdem belegt ist, dann kann MySQL den fehler nicht erkennen. Wenn man einen falschen Klartext benutzt, der nicht vorhanden ist, wird 00 eingetragen. Es gibt _keinen_ fehler.
Bitte merken: Datenbanken fangen meistens bei 1 an zu zählen (MySQL tuts jedenfalls). das gilt für die Indexe genauso wie für eine Position in einem String. Ein String beginnt bei 1 und nicht wie in PHP und C bei 0.
Liebe Grüße aus http://www.braunschweig.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen