Meta Datenbank

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

  • Meta Datenbank

    Hallo,

    für ein Projekt in meiner neuen Firma habe ich eine Intranetanwendung
    aufgesetzt. Dies umfasst eine relativ große Datenbank mit umfangreichen
    Loggingfunktionen und änlichen Spielereien.
    Unter anderem habe ich innerhalb der DB eine Meta Datenbank aufgesetzt,
    dh. man stellt irgendwann im laufenden Betrieb fest, das man zB bei den
    Ansprechpartnern ein weiteres (oder zwei, oder drei ... ) Feld für Emailadressen
    benötigt, und kann diese dem Datensatz hinzufügen OHNE die Datenbankstruktur
    zu ändern. Nun müssen diese Daten im Bedarfsfalle (so ca all 14Tage )
    exportiert werden um bei "Kunden" in eine Informix IDS2000 DB geladen
    zu werden.
    Dabei unterstützt die ZielDB aber die Metafelde nicht, so das, die Felder als reale
    Felder an den Datensatz angefügt werden sollten.

    Gibt es eine Möglichkeit, mehrere Felder in einer Spalte einer Abfrage zu
    einem Wert zusammen zu fassen, und das gleich mit einer SQL Abfrage zu
    erschlagen?

    Dh:. aus

    spalte 1
    ==========
    aaa
    bbb
    ccc
    ddd


    soll

    spalte 1
    ===========
    aaa*bbb*ccc*ddd


    werden?, oder muß ich dies umständlich per PHP machen?
    Der Export kann schonmal locker 300 Kunden mit insgesamt
    100.000 Datensätzen umfassen.

    Ideen ?
    TBT

    Die zwei wichtigsten Regeln für eine berufliche Karriere:
    1. Verrate niemals alles was du weißt!


    PHP 2 AllPatrizier II Browsergame

  • #2
    so ein problem hatte ich auch mal. aufgrund von JOINS hatte ich mehrere datensätze und wollte sie am besten auch in einer spalte direkt in mysql haben.

    leider war keine lösung vorrätig und ich musste es mit php machen.

    ich wäre auch (immer noch) an einer mysql lösung interessiert...
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      lässt sich damit nichts anfangen?
      http://www.mysql.de/doc/de/SET.html
      Kissolino.com

      Kommentar


      • #4
        nein, da in den Metafeldern beliebige Daten gespeichert werden
        und nicht nur 64 verschiedene Werte
        TBT

        Die zwei wichtigsten Regeln für eine berufliche Karriere:
        1. Verrate niemals alles was du weißt!


        PHP 2 AllPatrizier II Browsergame

        Kommentar


        • #5
          hmm ... hatte damit noch nicht gearbeitet und es so verstanden, dass mir pro datensatz 64 versch. werte zur verfügung stehen ... wenns also 'nur' um email-adressen geht ... aber irgendwie ist dir nicht zu helfen (jedenfalls nicht von mir)
          Kissolino.com

          Kommentar


          • #6
            aus meiner sicht müsste mal auch permanent das SET-feld ändern, wenn ein neuer 'index' hinzukommen soll. also immer ein ALTER TABLE usw....

            aber ist das wirklich sinnvoll? wohl eher nicht ....

            hoffen wir mal, das noch wer anders eine schöne lösung hat. mich interessierts nämlich auch.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              habs grad nochmal woanders nachgelesen ...
              A SET datatype can hold any number of strings from a predefined list of strings specified during table creation.
              ... jetzt hab ich es auch verstanden

              andere idee (ich geb nicht auf): INSERT ... SELECT in eine temporäre tabelle. sollte doch mit einem JOIN und CONCAT_WS klappen ... jetzt seid ihr dran
              Kissolino.com

              Kommentar


              • #8
                Original geschrieben von Wurzel
                sollte doch mit einem JOIN und CONCAT_WS klappen ...
                und die spätere korrekte zuordnung der daten?

                was schlägst du hier vor?
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  meine güte ... sei mal nicht so unkreativ ... hab ich pflöcke in den händen? wächst mir gras aus der tasche? trag' ich schlappen? wo sind denn die ganzen datenbank-spezies?

                  ... abgesehen davon, sprechen wir nicht über eine spalte? sollten da nicht kunden-ids zur verfügung stehen?
                  Kissolino.com

                  Kommentar


                  • #10
                    Original geschrieben von Wurzel
                    ... abgesehen davon, sprechen wir nicht über eine spalte? sollten da nicht kunden-ids zur verfügung stehen?
                    schon. aber wenn du die dann in eine spalte einer temp-tab reinschubst, hast du ja nciht mehr alle ids. oder?


                    naja. mal sehen, was TBT meint..
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      mit concat wird das wohl auch nichts, da ich nicht die Zusammenführung
                      mehrerer Spalten brauche, sondern eine Spalte in mehreren Zeilen

                      zB
                      Code:
                      m_id a_id daten
                        1    1  blabla1
                        1    2  blabla2
                        2    1  nochmehr blabla
                      m_id ist das entsprechende Metafeld (dort wird definiert wie es angezeigt wird)
                      a_id ist die Verknüpfung zum Datensatz, wo es angezeigt werden soll
                      daten ist einfach der Inhalt

                      als Ergebniss will ich nun alles in einer Zeile haben, wo die a_id gleich ist,
                      am besten durch * getrennt
                      Also
                      Code:
                      a_id   datenstring
                        1    blabla1*nochmehr blabla
                        2    blabla2
                        3    ...
                      TBT

                      Die zwei wichtigsten Regeln für eine berufliche Karriere:
                      1. Verrate niemals alles was du weißt!


                      PHP 2 AllPatrizier II Browsergame

                      Kommentar

                      Lädt...
                      X