Wie speichert ihr Arrays in der DB ?
-
Hi!
Wie schon in der Frage gestellt, Wie speichert ihr denn Arrays ?Bye
-
for schleife insert
-
Er meint kein Array von Datensätzen sondern höchstwahrscheinlich sucht er einen Typ wie TINYINT der ein Array aufnehmen kann...
MfG SideWinder
-
serialize();
-
Wie, TINYINT kann ein Array speichern ?
Kann dieses Array wiederum ein Array haben ?
-
ich würde das array joinen und dann als string in die datenbank schreiben...
-
wenn ich auf die idee kommen würde arrays als array in einer datenbank zu speichern würde mir unser chefprogrammierer die bleistifte um die ohren werfen!
nein, es ist kein schöner stil.
hast du einen array vorliegen, so, je nach datentyp und datenbestand, mit schleifen und insert in die db intergrieren.
aber warum gleich ein ganzes array? das verstehe ich nicht. man will doch nur daten und zustände sichern? oder?
-
Hi!
ICh Programmiere gerade ein kleines Online-Spiel. Und ich habe mir selbst eine Funktion geschrieben die mir Arrays in die DB schreibt und wieder liest.Und bei mir sieht dann das ganze in einem Feld so aus:
&3&#%5%4%1%$$100$8$%#%3%4%50%$$-1$$%#%4%4%50%$$-1$$%#&
Das ist jetzt ein mehrdimensionales Array.
Ein normales Array sieht so aus:&18&%%21%31%1%1%50%1%1%1%1%1%1%1%259%1%6%151%101%&
Und ich hatte mir interessiert ob man nicht Arrays Speichern kann. Aber kann man leider nicht so wie ich bräuchte.
Bye
-
Nein, ein TINYINT kann kein Array speichern - es ist nur ein Beispieltyp.
TINYINT speichert einen short integer.
MfG SideWinder
-
Ich wollte eig. nur wissen, ob meine Lösung zu umständlich ist .. ?
-
Falls du mit PHP arbeitest kannst du serialize verwenden
-
hab ich doch bereits gesagt!
-
Sorry, hatte ich wohl überlesen
-
Das ist ja schei****. Ich habe jetzt meine ganzen routinen anders geschrieben. Obwohl es auch einfach geht... Und ich habe hier noch extra mal nachgefragt und keine richtige Antwort bekommen. Naja ok dann werd ich das mal umschreiben.
Danke nochmal.Achja, mit den Funktionen unserialize() und serialize() ist es ja möglich Klassen oder irgentwelche Werte in einen Byte-Stream "umzuwandeln" welches ich als String zurück bekomme. Wie lange kann der denn sein ?
D.h. Wie groß muss denn dann das VARCHAR Feld sein ? SOllte man sicherheitsweise das Feld vom Type TEXT erstellen ?Bye
-
Die Länge hängt davon ab, wie groß dein Array ist, aber 255 ist schnell erreicht -> nimm TEXT
-
OK, Danke.
Jetzt hätte ich eine kleine Frage. Wird meine Datenbank eig langsamer, wenn ich mehr Felder habe ? Oder wenn ich anstatt VARCHAR(255), TEXT nehme ?Bye
-
Vermutlich schon etwas, aber ich denke das sich das meist nur unmerklich auswirkt (je nach Verwendung diesen Feldes)
-
Ich schließe mich flenders an. Eigendlich nicht, auf einem meiner Server hab ich ca. 23.000 Zeilen mit 10 verschieden Textspalten und values(Name,Wohnort,usw...), meine user und ich merken davon ehrlichgesagt keinen geschwindigkeits-unterschied.
Von daher, lass das ding vollwerden bis es platzt!
PS: Aber nicht mit Textdateien, die kannste in den sack hauen. Die machen schon nach 7 mb schlapp.
[ Dieser Beitrag wurde am 23.04.2003 um 10:58 Uhr von Tillmann David editiert. ]
-
Hi,
Danke für euere Antworten.
Aber leider habe ich keine 23.000 sonder vorraussichtlich mehr als 200.000 -300.000 Einträge.Was glaubt ihr eig., ist es sinnvoller mit mehere Tabellen zu arbeiten, anstatt meherer Felder für jeden Eintrag ?
Bye
-
Original erstellt von <Cenetix>:
Was glaubt ihr eig., ist es sinnvoller mit mehere Tabellen zu arbeiten, anstatt meherer Felder für jeden Eintrag ?Also solange es um einen einzelnen Datensatz geht würde ich denken ist es nicht sinnvoll statt mehreren Feldern mehrere Tabellen zu verwenden. Es sollten halt möglichst keine Daten mehrfach gespeichert werden müssen (dann auf mehrere Tabellen aufteilen). Aber lies dir vielleicht einfach mal ein paar Tutorials zu Datenbankdesign durch (z.B. sowas hier)
-
OK, Danke.
Bye