• Wieder einmal haben uns unsere Apfeltalker tolle Fotos zur Abstimmung eingesandt. Welches ist Euer Favorit? Stimmt mit ab! Hier geht es zur Abstimmung --> Klick
  • Es ist bereits Apfeltalk-Tradition und wir möchten sie auch in diesem Jahr fortsetzen: Unser Apfeltalk-Weihnachtslogo-Wettbewerb hat begonnen! Gestaltet für uns das Weihnachtsbanner, das im Monat Dezember bis zum Weihnachtsfest unsere Webseite schmücken soll. Lasst Eurer Kreativität freien Lauf! Hier geht es zum Wettbewerb --> Klick

xml - Darstellung mehrerer "Tabellen"?

vero

Fuji
Registriert
23.03.10
Beiträge
37
Hallo!
Ich möchte mir mit php eine Art Liste programmieren, die es mir ermöglicht meine DVDs im Überblick zu behalten, also zB wann gekauft/geschenkt bekommen, meine persönliche Bewertung, Sprachen, ... usw
Die Daten möchte ich über ein xml File verwalten, da sich eine Datenbank sicher nicht auszahlt.
Meine Frage ist jetzt:
Kann ich es realisieren, wie in einem Datenbank Modell m:n Beziehungen aufzubauen? Ich möchte mir nämlich auch die bekannteren Schauspieler pro Film speichern, manche kommen aber mehrmals vor und spielen auch in mehreren Filmen.
Mit einer Datenbank hätte ich kein Problem das darzustellen (mit allen Normalformen erfüllt) und ich kann mir auch einfache Sachen mit xml machen, aber da scheiterts.
Oder scheitert auch xml dran? Bleibt mir dann nix anderes über als:
Bsp:
<movie>
<title>blubb</title>
<year>2000</year>
<actor>a</actor>
<actor>b</actor>
...
</movie>

Ich würds mir so vorstellen ein xml File zu erstellen, wo einfach alle actors gespeichert sind und die dann via ID reinzuholen...
oder bin ich zu Datenbankverwöhnt und das geht gar nicht?

Danke für Antworten + evtl. ein Link zu einer Erklärung, google hat nicht das ausgespuckt was ich gesucht habe ;)

lg
 
XML ist ein „rohes“ Format, dass Du eigentlich nach Deinen Bedürfnissen zurecht biegen kannst. Es weiß zunächst nichts von Beziehungen etc. wie es für ein RDBMS üblich ist. Es hindert dich aber nicht z. B. eine Beziehung zu erstellen:
Code:
<myMovieDB>
  <movies>
    <movie id="1">
      <title>Terminator</title>
      <year>1984</year>
      <actor id="1" as="The Terminator" />
    </movie>
  </movies>
  <actors>
    <actor id="1">
      <name>Arnold Schwarzenegger</name>
      <dateOfBirth>1947-06-30</dateOfBirth>
    </actor>
  </actors>
</myMovieDB>

Dann definierst du in einem XML Shema (XSD) in welcher Beziehung die einzelnen Elemente/IDs zueinander stehen. In deinem Programm musst Du natürlich das dann entsprechend Implementieren, also dass es für jeden Schauspieler den Namen etc. aus der anderen Tabelle heraussucht.
 
Code:
<myMovieDB>
  <movies>
    <movie id="1">
      <title>Terminator</title>
      <year>1984</year>
      <actor id="1" as="The Terminator" />
    </movie>
  </movies>
  <actors>
    <actor id="1">
      <name>Arnold Schwarzenegger</name>
      <dateOfBirth>1947-06-30</dateOfBirth>
    </actor>
  </actors>
</myMovieDB>

leider fliegt dieses XML durch jeden Validator durch, da id ein globales Attribut ist und jede Belegung nur einmal vorkommen darf! Heißt, dieses XML ist falsch.

Richtig wäre:

Code:
<myMovieDB>
  <movies>
    <movie>
      <id>1</id>
      <title>Terminator</title>
      <year>1984</year>
      <actor ref="1" as="The Terminator" />
    </movie>
  </movies>
  <actors>
    <actor>
      <id>1</id>
      <name>Arnold Schwarzenegger</name>
      <dateOfBirth>1947-06-30</dateOfBirth>
    </actor>
  </actors>
</myMovieDB>