Carl: Mehere Werte in einer Zelle speichern aber getrennt auslesen

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

  1. 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

    1. 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

    2. 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?

  2. 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

    1. 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

      1. 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

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. 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

          1. 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

            --
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
          2. 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

            --
            T'Pol: I apologize if I acted inappropriately.
            V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
            (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
            Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.
  3. 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

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes