Mehere Werte in einer Zelle speichern aber getrennt auslesen
Carl
- datenbank
0 Sascha Hameister0 Frank aus Ulm0 wahsaga
0 Daniel Thoma0 Cheatah
Hi
gibts eine Möglichkeit, dass ich in einer Tabellenzelle einer mysql-datenbank mehere Werte speicher, diese aber getrennt auslese?
Es ist so, dass ich bei einer Tabelle für eine bestimmte Spalte meherer Benutzer habe, die in die spalte rein sollen, aber ich finde einfach keine gescheite struktur dafür :(
Gruss
Carl
Hi,
speicher die Daten doch einfach Pipe(|)-getrennt ab.
Dann werden es Listen.
Listen kannst du in Arrays umwandeln und diese kannst du auslesen.
bye
Hi, hallo
speicher die Daten doch einfach Pipe(|)-getrennt ab.
Dann werden es Listen.
Listen kannst du in Arrays umwandeln und diese kannst du auslesen.
du meinst sicher Listen mit Werten und | (Pipes) generieren, diese speichern, wieder auslesen und zu Arrays wandeln
ja, technisch möglich über den Sinn brauch ich mich, glaub ich, nicht mehr äußern
Tschau, tschüß,
Frank
speicher die Daten doch einfach Pipe(|)-getrennt ab.
Dann werden es Listen.
Listen kannst du in Arrays umwandeln und diese kannst du auslesen.
(mal abgesehen davon, dass ich diesen unsauberen weg auch ablehne und eher ein gescheites datnmodell benutzen würde,)
warum dann nicht gleich ein array nehmen und mit serialize/ unserialize speichern/ auslesen?
Hallo,
gibts eine Möglichkeit, dass ich in einer Tabellenzelle einer mysql-datenbank mehere Werte speicher, diese aber getrennt auslese?
Wenn Du Dir solche Fragen stellst, hast Du beim Entwurf Deiner Tabellenstrukturen etwas falsch gemacht.
Es ist so, dass ich bei einer Tabelle für eine bestimmte Spalte meherer Benutzer habe, die in die spalte rein sollen, aber ich finde einfach keine gescheite struktur dafür :(
Du hast also eine Tabelle mit Benutzern und eine Tabelle mit anderen Datensätzen.
Für solch eine n:n Zuordnung brauchst Du eine 3. Tabelle in der Du die Benutzer den Datensätzen zuordnest.
Grüße
Daniel
Hi
naja, aber ich kriegs trotzdem nicht richtig hin.
Also es ist so, dass die Seite für eine Allianz ist, die in verschiedenen Browsergames aktiv ist. Und dabei kann ein Mitglied in verschiedenen Spielen verschiedene Positionen einnehmen. Er ist also zum Beispiel in einem Spiel Diplomat in einem anderen ist er vielleicht der Flottenchef. Oder es gibt in einem Spiel zum Beispiel mehr als einen Diplomaten. Das Problem ist, dass ich nicht unbedingt für jedes Spiel eine neue Tabelle einrichten möchte, weil ich nicht weiß, wie viele Spiele es irgendwann geben wird und dann habe ich vielleicht irgendwann mal ziemlich viele Tabellen. Und dann müsste ich jede Spalte nach einem Spieler benennen. Das finde ich ziemlich umständlich. Hat vielleicht einer von euch da eine, wie ich das geschickt strukturieren kann?
Gruss
Carll
Hi,
naja, aber ich kriegs trotzdem nicht richtig hin.
beschäftige Dich mit den Grundprinzipien relationaler Datenmodelle.
Das Problem ist, dass ich nicht unbedingt für jedes Spiel eine neue Tabelle einrichten möchte,
Diese Ansicht ändere bitte auf gar keinen Fall.
Hat vielleicht einer von euch da eine, wie ich das geschickt strukturieren kann?
Du brauchst wirklich nur die Grundprinzipien zu beherrschen, dann kannst Du es von alleine lösen. Und wenn Du sie _nicht_ beherrschst, dann wird dies nicht die einzige Stelle bleiben, an der Du _erhebliche_ Probleme hast.
Cheatah
Hi
danke, dass du nicht zu viel verraten hast ;) hab ich mal selber was gelernt. Also ich hab mir jetzt 2 neue Tabellen geamcht. In die eine kommen die Ränge mit einer ID und in die andere die userid, die gameid und die rangid.Allerdings werde ich dadurch einige Datenbankaufrufe mehr haben als bisher. Wird das dann nicht zu performance Einbussen führen? Ab wie vielen Aufrufen pro Seite muss ich denn mit deutlichen Performanceeinbussen rechnen?
Gruss
Carl
Hi,
danke, dass du nicht zu viel verraten hast ;) hab ich mal selber was gelernt.
genau darum verrate ich so wenig wie möglich ;-)
Also ich hab mir jetzt 2 neue Tabellen geamcht. In die eine kommen die Ränge mit einer ID und in die andere die userid, die gameid und die rangid.
Klingt nach einem guten Anfang.
Allerdings werde ich dadurch einige Datenbankaufrufe mehr haben als bisher.
Nein. Lerne noch etwas weiter; die beiden Tabellen lassen sich verknüpfen. Wenn Du mehr als einen Request brauchst, machst Du etwas falsch; wenn Du eine _dynamische_ Anzahl Requests benötigst, etwa in einer Schleife, dann hast Du eine Katastrophe produziert.
Wird das dann nicht zu performance Einbussen führen?
Ja :-) Das Teure ist der Roundtrip, daher sollte man i.a.R. versuchen, die Zahl der Requests gering zu halten.
Ab wie vielen Aufrufen pro Seite muss ich denn mit deutlichen Performanceeinbussen rechnen?
Der Wert dürfte irgendwo zwischen 0 und einigen Millionen liegen (jeweils einschließlich). Alle Pauschalaussagen sind falsch und dumm.
Cheatah
Hi Carl,
Ab wie vielen Aufrufen pro Seite muss ich denn mit deutlichen Performanceeinbussen rechnen?
der Faktor, um den Deine Seitenaufrufe streuen können, ist üblicherweise kleiner als derjenige, um den die Performance eines _einzigen_ Datenbankzugriffs streuen kann, wenn Du Deine Tabellenverknüpfung mit hinreichend vielen Einträgen pro Tabelle (_das_ ist eine wichtige Kenngröße für die Komplexität) nicht entsprechend performant durchführst.
Deine Freunde auf dem Weg, die zu verhindern, heißen CREATE INDEX und EXPLAIN.
Viele Grüße
Michael
Hi,
gibts eine Möglichkeit, dass ich in einer Tabellenzelle einer mysql-datenbank mehere Werte speicher,
nein, diese Möglichkeit gibt es nicht. Beschäftige Dich mit den Grundprinzipien relationaler Datenmodelle; s. auch Daniels Antwort (nur dass es "n:m" heißt und vermutlich "1:n" auch reicht).
Cheatah