Amita Geschrieben 7. April 2010 Geschrieben 7. April 2010 Hallo. Ich möchte ein Array mit 3 Dimensionen in einer Datenbank (MySQL) speichern und dann auch abfragen. Irgendwie will mir das nicht so recht gelingen... Ich habe in der Datenbank folgende Felder: id, land, service, monat, jahr, wert Was ich rausbekommen möchte, ist folgendes: 1. eine Tabelle die in etwa so aussehen könnte (x damit die Tabellenstruktur sichtbar ist): SERVICE 1 Monatxx L1 L2 L3 L4 Januarx 22 23 45 56 Februar 43 54 66 67 L=Land 2. eine Tabelle die in etwa so aussehen könnte: LAND 1 Monatx S1 S2 S3 S4 Januarx 22 23 45 56 Februar 43 54 66 67 S=Service Da aber MySQL alles Zeilenweise ausgeben will, bekomme ich entweder im Fall 2 eine Tabelle mit allen Daten, also bei 4 Services 4x Januar, 4x Februar usw. Oder ich gruppiere es nach Monaten, dann bekomm ich aber nur einen Service, nicht alle 4. Oder ich gruppiere es nach Service, dann bekomm ich aber jeweils nur den ersten Monat. Wo das Problem LOGISCH ist, ist mir klar beim gruppieren, nur weiss ich auch nicht, wie ich das anders lösen soll. Die Tabelle zerpflücken und in mehreren Tabellen abbilden kam mir auch schon in den Sinn.. ich weiss nur nicht WIE. Denn der angegebene Wert macht immer nur bezogen auf datum UND service UND land sinn. Bestimmt steh ich nur grad aufm dem Schlauch. Weiss einer weiter? Zitieren
LadyPreis Geschrieben 7. April 2010 Geschrieben 7. April 2010 Denn der angegebene Wert macht immer nur bezogen auf datum UND service UND land sinn. Klingt doch ziemlich stark nach einem zusammengesestzten Primärschlüssel... Schreb dir doch mal alle Daten hintereinander auf, die du speichern willst. Anschließend kommt der wichtige Punkt: Normalisierung Zitieren
Amita Geschrieben 7. April 2010 Autor Geschrieben 7. April 2010 Normalisierung würde maximal dazu führen, dass ich Attribute auslager und noch mehr Tabellen am Ende habe... die Attribute müssen schon alle da drin bleiben, da sonst der Wert nicht mehr eindeutig ist (auch wenn er durch die ID eindeutig ist, hilft mir das ja nichts wenn ich es nicht auf eine bestimmte Konstellation von Attributen zurückführen kann). Mag sein, dass ich das falsch sehe. Ich bin FISI im 2. AJ und hatte mit Anwendungsentwicklung bisher nicht so viel zu tun.. und in Situationen wie dieser weiss ich auch warum! Zitieren
flashpixx Geschrieben 7. April 2010 Geschrieben 7. April 2010 Wenn Du PHP einsetzt kannst Du jede beliebige Variablen serialisieren, so dass Du einen String bekommst, den Du in einem Stringfeld der Datenbank abspeichern kannst. Die meisten Programmiersprachen unterstützen auch Serialisation von Objekten (unter C++ würde ich die Boost dafür verwenden). Sofern das Datenbankfeld groß genug ist kannst Du dann den String wieder in die passende Datenstruktur umwandeln. Rein vom Designkonzept wäre das ganze über entsprechende Schlüsselbeziehungen und Tabellen zu realisieren. Zitieren
_n4p_ Geschrieben 8. April 2010 Geschrieben 8. April 2010 wenn es nur um die ausgabe der gespeicherten daten geht, könnte auch das helfen: fuþark: The Wizard revisited: Dynamic Crosstabs using MySQL Stored Procedures Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.