Alt 11.10.2011, 12:40:52   #1 (permalink)
Multitalent
Benutzerbild von joschilein

ID: 9301
Lose-Remote

joschilein eine Nachricht über ICQ schicken
Reg: 05.05.2006
Beiträge: 1.414
joschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehen
Standard Strategie bei Datenüberlänge

Ein Array enthält alle Variablen, die gleich an im Zusammenhang mit einem vorbereiteten Query an die Datenbank gesendet werden sollen. Die Keys sind dabei die Spaltennamen und die Values die einzutragenden Werte.

Auf SQL-Injections etc ist natürlich geprüft. Nun kann es aber sein, dass ein Wert zu lang ist und die in der DB definierte Länge überschreitet. Hauptgrund könnte sein, dass bestimmte Spalten verschlüsselt gespeichert werden sollen und durch die Verschlüsselung und die verwendeten Schlüssel nicht völlig klar ist, welche Länge die Ausgabe haben soll.

Ich überlege mir nun, was wohl die beste Lösung wäre.
  1. Feldlänge schon vorher vergrößern (aktuell varchar(200) wo nur knapp 100-150 Zeichen erwartet werden) oder gleich auf Text setzen
  2. Feldlänge dynamisch erweitern, wenn es nötig wird. Vor der Datenzusammenstellung wird eh SHOW COLOUMS ausgeführt. Daraus ließe sich auch ein ALTER TABLE vor den eigentlichen INSERT basteln.
  3. Überlange Felder abfangen und alternativ speichern, z.B. als CSV (mit eigenen Mehrzeichen-Feldtrennern) o.ä.

Problem bei 3: Es ist dann zwar nichts verloren, aber um die Daten später einfach und schnell verarbeiten zu können, müssten sie ja eh irgendwann in einem längeren Feld in der selben Tabelle stehen.

Problem bei 2: Die Zugriffsrechte für den MySQL-Benutzer könnten gerade bei ALTER eingeschränkt sein. Das ist zwar aktuell nicht das Problem, gilt es aber im Hinterkopf zu behalten.

Problem bei 1: Ja hmm. Wie sinnvoll ist es mehrere Felder als Text zu definieren und sie dann nur für maximal ein paar hundert Zeichen zu verwenden?

Vermutlich ist 1 am sinnvollsten, 2 geht mir aber auch nicht aus dem Kopf


Heute schon gepixelt
joschilein ist offline   Mit Zitat antworten
Gesponsorte Links
Alt 11.10.2011, 12:49:28   #2 (permalink)
be forever curious
Benutzerbild von tleilax

ID: 27936
Lose-Remote

Reg: 20.04.2006
Beiträge: 2.259
tleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehen
Standard

Wenn es keine funktionale Anforderung ist, dass Texte nur eine bestimmte Länge haben dürfen, würde ich technisch nicht auf feste Längen setzen und somit TEXT einsetzen. Der Overhead ist maximal 1 Byte im Gegensatz zu (VAR)CHAR.

Variante 2 ist in meinen Augen irgendwie "pfui bäh!" und Variante 3 äußerst unhandlich...
.lange tage und angenehme nächte, tlx
:.whatthemovie.com (Screenshots raten) | PHP ExportForce-Klasse
tleilax ist offline   Mit Zitat antworten
Alt 11.10.2011, 14:06:22   #3 (permalink)
Multitalent
Benutzerbild von joschilein

ID: 9301
Lose-Remote

joschilein eine Nachricht über ICQ schicken
Reg: 05.05.2006
Beiträge: 1.414
joschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehen
Standard

Ok, dann nehme ich einfach Text
Ich muss ja auch nicht alles unnötig kompliziert machen


Heute schon gepixelt
joschilein ist offline Threadstarter   Mit Zitat antworten
Alt 11.10.2011, 14:09:57   #4 (permalink)
be forever curious
Benutzerbild von tleilax

ID: 27936
Lose-Remote

Reg: 20.04.2006
Beiträge: 2.259
tleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehentleilax genießt hohes Ansehen
Standard

Zitat:
Zitat von joschilein Beitrag anzeigen
Ich muss ja auch nicht alles unnötig kompliziert machen
Fährt man nie verkehrt mit...

http://de.wikipedia.org/wiki/KISS-Prinzip
.lange tage und angenehme nächte, tlx
:.whatthemovie.com (Screenshots raten) | PHP ExportForce-Klasse
tleilax ist offline   Mit Zitat antworten
Alt 11.10.2011, 23:14:15   #5 (permalink)
Neuer Benutzer
Benutzerbild von mini-gmbh

Reg: 18.09.2011
Beiträge: 23
mini-gmbh befindet sich auf einem aufstrebenden Ast
Idee KISS rockt

Hallo Joschilein,

tleilax hat schon recht, KISS!

Wobei: Wieviele Felder dieser Art hast Du? Nur ein paar, oder wirklich viele? Falls Du hunderte solcher Felder hättest könnte Variante 2 eine Überlegung wert sein. In allen anderen Fällen nimm gleich Text, wie auch von tleilax empfohlen.

Freudige Grüße!

Timon
mini-gmbh ist offline   Mit Zitat antworten
Antwort

Gesponsorte Links

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Informationen über NLP, Walt Disney Strategie oggy Gott und die Welt 0 28.10.2009 20:08:32
[S] strategie-browsergame Himli Lose4Scripts (erledigt) 3 01.02.2008 10:58:11
Der Praktiker-Baumarkt und seine Rabatt-Strategie Tropal Gott und die Welt 44 19.12.2007 16:12:38
Tolle Online-Strategie-Aufbausimulation (kostenlos) Yandamar Kleinanzeigen 1 21.12.2006 12:26:34


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:25:55 Uhr.