• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

MYSQL Feldtype frage

Sisko

New member
hi,

ich moechte von euch mal wissen unter welchem Type ich meine MYSQL Felder am besten laufen lasse...dazu poste ich immer die laenge des Feldes und fuer was es da ist - da sich ja nicht jedes Feld fuer alles eignet...es sollte. Es sollte am wenigsten Speicherplatz verbrauchen - das ist das Ziel :)
Also los geht:


-ein Feld in dem die UNIX Zeit gespeichert wird (habe da jetzt 12 STellen und varchar eingetsellt)

- Feld fuer einen Namenseintrag (22 Zeichen ->varchar jetzt)

- mailadresse (33 Zeichen -> varchar jetzt)

- url (35 Zeichen ->varchar)

- kommentarfeld (blob???)

- ein reines zahlefeld (9 zeichen ->varchar)

- feld mit zahlen und satzpunkt (17 ->varchar)

- ein fehlt fuer eine id, also auch nur nummern (4 zeichen ->int)



also es ware wirklich nett wenn mich da mal jemand beraten koennte :)
 
Folgender Link könnte Dir sehr hilfreich sein:
http://stud.fh-wedel.de/~ia3366/typen.html

Dort ist aufgelistet, welcher Datentyp was benötigt.

Ansonsten:

Namenseintrag mit 22 Zeichen ein wenig kurz
mailadresse mit 33 Zeichen ebenfalls ein wenig kurz
url mit 35 Zeichen ist mir persönlich auch zu kurz
Kommentarfeld als blob finde ich nicht gut, blob = binary large object, reicht nicht auch varchar mit 255 Zeichen?

Zahlenfelder nutze ich meistens als INT (unsigned, d.H. ohne Vorzeichen sofern Zahlen nur positiv sein sollen).

Was ist ein Zahlenfeld mit Satzpunkt? Kannst du das nicht mit number_format ergänzen sofern es sich um den tausender Trennpunkt handelt? Ansonsten gibt es decimal (x,y) für Dezimalzahlen mit y Nachkommastellen.

Das id Feld ist in der Version nach 9999 Eingaben erschöpft, wäre zu überlegen, ob das nicht doch mehr werden könnte!
 
vielen Dank fuer die Antwort, aber

ich habe eigentlich nicht danachgefragt ob das feld deiner meinung nach mehr zeichen haben sollte, sondern nur was ich fuer die verwendung mit der leange am besten nehmen sollte :)

das zahlenfeld mit punkt ist uebrigens ein Feld fuer die IP Adresse...also was sollte ich da nehmen? Laenge 17 zeichen..

du hast geschrieben das du bei zahlenfeldern meistens int nimmst...das hatte ich auch mal gemacht nur eigenet sich das nicht fuer ein 9 stellen feld...solltest du wissen...weil gib mal diese Zahl ein: 999999999 die wird in dem Feld nicht gespeichert...weil das irgendwie anderes funktioniert und da ist die hoechste zahl irgendetwas anderes....(daher habe ich auch immer angegeben was da rein soll)...also was sollte ich da nun verwenden?

thx

p.s.: das text feld wo ich blob gesetzt habe, reicht nicht fuer 255 zeichen...ist naemlich fuer so eine Art gaestebuch gedacht und das sind 255 zeichen viel zu wenig :(
breuchte vieleicht 350 oder so...also was koennte ich da am besten machen?
 
Zuletzt bearbeitet:
achso, ich habe uebrigens auf der site welche du gepostet hast gelesen, dass bei varchar nur das berechnet wird was auch drinen steht, das bedeutet also, dass es keinen untersied von dem speicherplatzt machen wuerde, wenn ich das feld auf varchar 50 oder varchar 20 setze, selbst wenn ich immer nur 20 zeichen in dem feld haette?
wie wuerde das beispiel aussehen, wenn ich einmal 20 und dann im neachsten feld 30 zeichen drinen hatte? wuerde dann jedes feld so viel platzt wie 30 zeichen verbrauchen?
 
Unterschied BLOB - TEXT: http://lists.phpcenter.de/archive/mysql-de1/msg04220.html

BLOB unterscheided in der Gross und kleinschreibung, wichtig bei suchfunktionen.

varchar: Ich denke (100%ig sicher bin ich da auch nicht, nur 95%ig), das jedes einzelne Feld nur soviel verbraucht, wie nötig und sich nicht nach dem grössten Eintrag richtet.

BLOB sollte aber mehr als 255 Zeichen aushalten können, Zeichenanzahl evtl. begrenzt?

INT: INT[(M)] [UNSIGNED] [ZEROFILL]
A normal-size integer. The signed range is -2.147.483.648 to 2.147.483.647. The unsigned range is 0 to 4.294.967.295

999.999.999 geht dort auch noch ohne Probleme mit rein, Probleme treten erst auf, wenn der Zahlenwert kleiner oder grösser als bei den obigen Angaben ist! Hab ich Werte, wo ich nciht weiss wie gross die werden, kommt allerdings auch ein anderer Typ dran ;)

Für das Zahlenfeld kannst du varchar nehmen, und 17 Stellen reichen locker aus: 192.168.120.120 (15 stellig).
 
ok, vielen Dank hat mir wirklich viel geholfen :).
Nur was ich immer noch nicht weiss ist der unterschied zwischen BLOB und Text :(
Ich habe jetzt naemlich mal das Feld von Blob zu Text getauscht und es befindet sich immer noch gross und kleinschreibung da drinnen:eek:
Also ich weiss wirklich nicht was ich da nehmen soll...(
 
Na klar ist beides drin, aber wenn du ein Textfeld nach druck durchsuchst, kriegst du auch Druck zurückgegeben als Treffer, ein Blobfeld überprüft hingegen die Gross-und Kleinschreibung und liefert auch wirklich nur drcuk zurück.
 
Zurück
Oben