Autor |
Nachricht |
Benutzer 1103
Account gelöscht Threadersteller
Ort: -
|
Verfasst Do 07.05.2009 10:02
Titel XML Schema zu mySQL |
|
|
Moin,
ich suche nach einer guten Möglichkeit, die Struktur
eines XML-Schemas (.xsd), in eine relationale Datenbank
zu wandeln, in meinem Fall mySQL. Vom Prinzip her ist es
mir klar, allerdings weiß ich nicht ob ich den Idealen Weg gehe.
Das Schema, bzw. die XML-Dateien sehen vom Prinzip her wie folgt aus:
Code: |
- <bier>
----- <marke></marke>
----- <eigenschaften>
--------- <geschmack></geschmack>
--------- <knalleffekt></knalleffekt>
--------- <sonstiges alkoholfrei="false" starkbier="true" />
----- </eigenschaften>
- </bier>
|
lediglich ein Besispiel vom Aufbau
Wie lege ich diese Relationen richtig ab, vorallem in Bezug auf die Attribute?
Z.B., sollte man für jeden Tag der Attribute hat eine extra Tabelle anlegen?
Für Denkanstöße wäre ich dankbar.
Grüße
|
|
|
|
|
DerM
Dabei seit: 18.01.2009
Ort: -
Alter: 42
Geschlecht:
|
Verfasst Do 07.05.2009 10:21
Titel
|
|
|
erster Gedanke
Tabelle Bier
- id
- marke
- eigenschaften (foreign Key auf Eigenschaften[id], Komma getrennt - für ein Array)
Tabelle Eigenschaften
- id
- geschmack
- effekt
- sonstiges
|
|
|
|
|
Anzeige
|
|
|
therapiekind
Dabei seit: 14.03.2006
Ort: In deinem Kopf
Alter: -
Geschlecht: -
|
Verfasst Do 07.05.2009 13:55
Titel
|
|
|
In der Annahme, dass für ein Bier jede Eigenschaft einzigartig ist (also z.B. nicht zweimal Geschmack auftreten wird):
Code: | +----+-------+-----------+-------------+-------------+-----------+
| id | marke | geschmack | knalleffekt | alkoholfrei | starkbier |
+----+-------+-----------+-------------+-------------+-----------+ |
Vollkommen ausreichend. Sollten doch mal doppelte Eigenschaften verwendet werden, dann solltest du den Weg über eine zweite Tabelle für die Eigenschaften gehen. Das musst du natürlich vorher überlegen.
Zuletzt bearbeitet von therapiekind am Do 07.05.2009 13:56, insgesamt 2-mal bearbeitet
|
|
|
|
|
Benutzer 1103
Account gelöscht Threadersteller
Ort: -
|
Verfasst Do 07.05.2009 17:01
Titel
|
|
|
Danke für die Antworten!
Das Problem ist, dass Elementnamen in der tieferen Struktur nochmals auftreten können, sprich diese wären dann doppelt. Somit käme der simple Weg, alles in eine Tabelle zu packen, nicht in Frage. Ausserdem sind es bei mir sehr viele Attribute, bei allem in einer Tabelle wären es dann wohl 200 Felder oder so.
Ich werde es nun so machen, dass ich die Baumstruktur grob in Tabellen splitte, mit den Namen der Hauptknoten.
Für die ganzen Attribute, die NICHT doppelt vorkommen, habe ich mir überlegt einfach alle attribute in eine Extra-Tabelle zu packen, mit den Attribut-Namen als Spalten-Namen. Dies hat den Vorteil, dass ich das Skript zum auslesen vollkommen automatisieren kann.
|
|
|
|
|
Kash
Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht:
|
Verfasst Do 07.05.2009 17:29
Titel
|
|
|
zuordnungstabelle?
dort tauchen nur die ids der anderen tabellen auf.
|
|
|
|
|
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Do 07.05.2009 18:35
Titel
|
|
|
Du, das schema haste jetzt aber nicht gezeigt, das wär ja wesentlich weil vollständig. Aus dem Auszug der Instanz kann man nur Vermutungen über die Struktur anstellen.
Da xml-Schemata selbst xml-Instanzen sind, sollte es ein Leichtes sein, sie in ddl umzuwandeln.
|
|
|
|
|
Benutzer 1103
Account gelöscht Threadersteller
Ort: -
|
Verfasst Do 07.05.2009 19:26
Titel
|
|
|
Ich bin mir auch noch nicht ganz sicher ob ich den richtigen Weg gehe.
Da mir das xml-Schema vorliegt als .xsd, wäre es natürlich ideal wenn es ein tool gäbe, was mir das Schema direkt in mySQL exportiert und eine relationale Datenbankstruktur generiert.
Ich habe mich auch schon danach umgeschaut, aber bislang noch nichts gefunden was da passen würde.
Evtl. gibt es eine php-Klasse dafür? Don't know -.-
EDIT:: Es handelt sich dabei übrigens um das openimmo_121 Schema. Hätt ich auch gleich erwähnen können
Zuletzt bearbeitet von am Do 07.05.2009 19:28, insgesamt 2-mal bearbeitet
|
|
|
|
|
therapiekind
Dabei seit: 14.03.2006
Ort: In deinem Kopf
Alter: -
Geschlecht: -
|
Verfasst Do 07.05.2009 19:38
Titel
|
|
|
Bier ist aber 'ne komische Immobilie ...
|
|
|
|
|
|
|
|
Ähnliche Themen |
Schema.org
Appl, die zu XML-Schema Formular generiert, und XML schreibt
[PHP + mySQL] Kann Fehler in einer mySQL-Phrase nicht finden
[PHP/MySQL] MySQL Error: 1054, falsche Tabelle ausgewählt?
[MySql]Lost connection to MySQL server during query
[php / mysql] Mysql Daten in php als Link ausgeben
|
|