Datenbankmigrierung

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Datenbankmigrierung

    Hallo zusammen,

    ich hab ein Problem und sehe keinen passenden Lösungsansatz dazu. Es geht um folgendes:

    ich habe mehrere verschiedene datenbanken von webshops, alle anders aufgebaut ( komplett verschieden ). diese will ich jetzt in eine eigene datenbank transferieren und vereinheitlichen, mit hilfe eines tools (am besten PHP) das automatisch funkioniert.

    Meine Datenbank besteht aus einem festen Satz an Feldern, diese Felder will ich aus den Shops befüllen, nur da heissen sie anders.

    ich hatte dann die idee, es einfach über ein formular zu machen, und jedes feld einzeln zu mappen. Also indem ich einfach frage, das feld, das bei mir "Matnr" heisst, heisst bei ihnen <input field="text"[...] so in der Art. ABER was mache ich, wenn einer der Shops nun Fremdschlüssel und mehrere Tabellen verwendet? die einzige lösung die ich bisher sehen konnte war eine manuelle SQL abfrage einzubauen, aber das wäre seeeehr unschön :(

    pls Help :confused: :confused: :confused:
    [SIZE=1]Live is a bitch... so... fuck it[/SIZE]
  • Über welches Datenbanksystem reden wir denn?
    MySQL / Oracle 8 - 9 - 10 / SQL-Server 7 - 2000 - 2003 - 2005?

    Fast alle Datenbanken bieten fertige Im- und Export-Utilities, die - in gewissen Grenzen - auch Transformationen der Daten durchführen können. Bei manchen Sytemen geht das leichter, bei anderen ist das komplizierter.
    Oracle und SQL-Server können das beispielsweise direkt. Bei einfacheren Datenbanksystemen wie MySQL ist etwas Handarbeit nötig.

    Sind die Daten mal in der gleichen Datenbank (eventuell in verschiedenen Tabellen), kannst du weitere Anpassungen mit SQL vornehmen (zum Beispiel auch mit SELECT INTO).

    Du brauchst also nicht extra Programme mit PHP entwickeln.

    Grüße
    Michael
  • Die rede ist von mySQL

    ein einfaches Datenbankscript reicht in sofern nicht aus, da es dynamisch auf verschiedene Shopdatenbanken die verschieden aufgebaut sind funktionieren soll, undzwar auch für jemanden der überhaupt keinen Plan von SQL hat. D.h. die SQL Anweisung von so dynamisiert werden, dass über ein Formular alles selektiert wird das man braucht, mit oder ohne Fremdschlüssel Tabellen, je nach dem.

    ein erster Lösungansatz ist folgender:

    1. Benutzer gibt im IE Datenbank-login Daten an. Anschließend werden alle Tabellen dieser Datenbank angezeigt. Mit einem Ankreuzfeld kann er die Tabellen auswählen, in denen sich relevante Daten befinden. Dann geht er auf weiter...

    2. Nach dem er die Tabellen ausgewählt hat werden sie "described", also alle Felder der entsprechenden Tabellen aufgeführt. Über ein Kombofeld kann er jetzt Quell und Zielfeld bestimmen (hier ist mein erstes Problem-> Kriege das Kombofeld nicht umgesetzt, habe noch keinen Lösungsansatz dafür). Anschließend geht er auf weiter.

    3. Die SQL Anweisung wird ausgeführt mit den entsprechenden Variablen, so in dieser Art:

    Select... as matnr, ... as lifnr, ... as anhang [...] from [...] where [...] left join [...]

    left join, falls es über 2 Tabellen geht. Kann mir wer bei meinem Kombofeld prob weiterhelfen?

    Danke schonmal für die Antworten,

    Gz Neroringer
    [SIZE=1]Live is a bitch... so... fuck it[/SIZE]
  • Quellcode

    1. echo "<select>\n";
    2. $query = "SELECT dies,das FROM datenbankdeinerwahl";
    3. $result=mysql_query($query);
    4. while ($daten=mysql_fetch_array($result, MYSQL_ASSOC))
    5. {
    6. echo "<option value='" . $daten['das'] . "">" . $daten['dies'] . "</option>\n";
    7. }
    8. echo "</select>\n";


    ist natürlich nur ein denkanstoß...
    Signatur entsprach nicht den Boardregeln.
    ->gelöscht by lukas2004
  • öhm ja danke aber das ist ja eine stinknormale sql abfrage mit ausgabe als select box, ist aber das total falsche.

    in meinem result kommen z.b. 60 ergebnisse raus. diese 60 ergebnisse sollen zu 20 anderen "zugeordnet" werden... (also 20 von den 60, der rest wird verloren)
    [SIZE=1]Live is a bitch... so... fuck it[/SIZE]
  • achso jetzt versteh ich erst was du meinst ^^ hab combofeld falsch verstanden ^^ also das was du willst ist eigentlich auch ziemlich einfach...

    du musst ihm halt erst (per konstante oder variable scheiß egal) einflösen wie die felder eigentlich heißen....
    dann holst du dir die ergebnisse per mysql abfrage und speicherst sie in ne variable/array und dann machst du einfach nen mysql insert...

    ich würd mir aber einfach n drop der db ausgeben lassen und die feldnamen ändern...
    Signatur entsprach nicht den Boardregeln.
    ->gelöscht by lukas2004
  • ja aber wie speziell erstell ich so ein kombo feld?

    ich schau jetzt mal ob ich was in Javscript finde, eine Art Drag und Drop System, aber ich befürchte eher nicht.

    ich versteh nicht wie ich die verbindung zwischen meinen MYSQL Ergebnissen der Quelldatenbank mit denen der Zieldatenbank verbinden soll, die syntax zum einbinden ist mir schon klar.

    folglich handelt es sich um eine PHP / HTML / JAVAscript Syntax die ich bräuchte :-/
    [SIZE=1]Live is a bitch... so... fuck it[/SIZE]
  • meiner meinung nach ein unloesbares problem!! ein php skript das selbstaendig rausfinden soll, welches feld zu welchem feld gehoeren soll!? neeeneee!!
    ein nicht-programmierer, der das mittels dropdown-feldern machen soll!? neeeneee!!
    da wirst du schon deine SQL-statements fuer jede der zu importierenden DBs selber schreiben muessen!! viel spass ... is ne echt besch*ssene arbeit!! ^^

    ~ C L O S E D ~

    ceeyaa.mex