DB *automatisch* erweitern?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • DB *automatisch* erweitern?

    Hallo!

    Mein Problem ist folgendes: Ich möchte eine bestehende DB später leicht erweitern können, also eine bestimmte Anzahl an Tabellen nachträglich einfügen. Wenn jetzt ein Dump als Textdatei vorliegt, sollten die Tabellennamen beim Einfügen nicht identisch mit den schon existierenden sein - also soll ein Kürzel vor den Tabellennamen gesetzt werden.

    Bsp.:
    kunden --> 623_kunden
    blabla --> 623_blabla

    Gibts da ne Möglichkeit, das über MySQL zu lösen oder muss ich umständlich ein Script bemühen, das den Dump "bearbeitet"? Vl hatte jemand schon mal ein ähnliches Problem... bzw. kennt einen anderen Lösungsansatz???

    Gruß, Lumbumba

  • #2
    Sicher, dass du immer ne extra tabelle brauchts? normalerweise wird einfach ne extra spalte angelegt.

    Kommentar


    • #3
      Ja, weil am Anfang noch nicht abzusehen ist, wie sich das Ganze entwickelt...
      Gruß, Lumbumba

      Kommentar


      • #4
        na, dann erstrecht.

        Also ne mysql-funktion ist mir nicht bekannt. (was ja nichts heißen muss)

        Aber im Prinzip sinds ja nur so 3 Zeilen PHP-Code. Evtl. kann myadmin dir unter Optionen oder Export oder so helfen. einfach die tabellen als leertabelle unter dem namen ohne prefix anlegen. und wenn du ne neue brauchst, einfach mittels der namenskonvertierung (unter o.g. menüpunkten) kopieren.

        Da sich das ganze aber nach dem anlegen neuer kunden anhört, würde ich mir ohnehin nen kleines backend schreiben.

        Kommentar


        • #5
          Also erstmal danke für deine Antworten!

          Hm, da hast du mich auf ne Idee gebracht: Ich könnte ne temporäre Datenbank anlegen, in dieser per SQL alle Tabellen ändern, dann einen neuen Dump erstellen lassen und diese in die "richtige" DB einfügen. Muss ich doch gleich mal probieren...

          Da sich das ganze aber nach dem anlegen neuer kunden anhört
          Nee, war nur ein Beispiel. Der Knackpunkt an der Geschichte ist eben, dass das Ganze automatisch und ohne Zutun eines menschlichen Wesens erfolgen sollte. (Außer natürlich das Reinkopieren des Dumps und evtl. Eintrag in Konfigurationsdatei).
          Gruß, Lumbumba

          Kommentar


          • #6
            Wie gesagt, schreib dir schnell nen backend, in dem du die dumps (samt platzhalter) speicherst. dann kannst du mit einem klick die kompletten tabellen neu anlegen. musst maximal die nummer oder präfix manuell eingeben. und selbst das könnte man automatisieren. je nach dem, welchen zweck du verfolgst.

            Kommentar


            • #7
              Alles klar - aber was meinst du eigentlich mit "Backend" und "Platzhalter"? Die temporäre DB? Ich verstehe unter Backend eher ne Schittstelle zum Admin-user o. ä. Den gibbts ja dann nich.

              1. Datei liegt im Dateisystem - 2. Einlesen + temp. DB Erstellen - 3. Umbenennen - 4. Exportieren - 5. Importieren - Fertig.

              Prefix ist ja kein Problem.
              Gruß, Lumbumba

              Kommentar


              • #8
                Backend meinen wir wohl beide das selbe. natürlich gibt es die schnittstelle zum admin noch nicht. deswegen sollst du sie ja erstellen

                Platzhalter für das Präfix im Tabellennamen. Damit du den vom backend nur ersetzen lassen brauchst. und dann die neue Tabelle anlegen kannst. (wovon ich im übrigen immer noch nicht überzeiugt bin...

                Kommentar


                • #9
                  1. Datei liegt im Dateisystem - 2. Einlesen + temp. DB Erstellen - 3. Umbenennen - 4. Exportieren - 5. Importieren - Fertig.
                  1. Datei (dump) liegt im Dateisystem - 2. Einlesen + platzhalter ersetzen. - 3. Dump aufspielen - Fertig.

                  Kommentar


                  • #10
                    wovon ich im übrigen immer noch nicht überzeiugt bin...
                    Na wenn andere später in sich abgeschlossene Bestandteile der Software programmieren wollen, die unter meiner Oberfläche / unter Verwendung meiner DB laufen sollen: Für diejenigen anderen isses doch besser ne eigene DB-Struktur zu machen, deren Tabellen dann bloß in meine DB übernommen werden. Die Abfragen muss ich dann halt entsprechend umsetzen...

                    Wie soll das denn ohne neue Tabellen gehen
                    Gruß, Lumbumba

                    Kommentar


                    • #11
                      Hey,

                      Weiß zwar nicht genau was du für Bestandteile hast aber du müsstest denk ich ein paar Tabellen haben die Stammdaten enthalten. Zum Beispiel folgende:


                      Programmierer <------> Zuordnung_Programmierer_Projekt <------->Projekte

                      An Projekte anglieder kannst du dann vielleicht noch welche Tabellen er benötigt, bzw. Welches Projekt welche Tabellen hat.

                      Noch mehr Tabellen sind jedoch fast immer der falsche Weg. Jedenfalls wenn keine Tabelle sich so erweitern lässt das die zu speichernden Daten darin gespeichert werden können (Spalte mit ProjektID / ProgrammiererID) bzw. noch keine Tabelle vorhanden ist die diese Daten aufnehmen kann.

                      greets and nice we
                      Zuletzt geändert von benny84; 30.07.2005, 21:43.

                      Kommentar


                      • #12
                        Das Problem hat sich inzwischen gelöst, werd das Ganze anders angehen... THANX!
                        Gruß, Lumbumba

                        Kommentar

                        Lädt...
                        X