[SQL] Zwei Datenbanken verknüpfen

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Bacardi Joe, 22. Oktober 2009 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 22. Oktober 2009
    Zwei Datenbanken verknüpfen

    Hallo,

    ich bin auf der Suche nach einer möglichkeit wie ich 2 Datenbanken verbinden kann. Ich war zwar schon in der MySQL Doku unterwegs und hab google schon befrage aber ich hab anscheinend nicht die richtigen Suchbegriffe verwendet :/
    Ziel ist in einer Datenbank Namen von Personen stehen zu haben - an sich kein Problem. In eine zweite Tabelle sollen Daten von Treffen mit einigen Infos - auch kein Problem. Die Frage ist nur wie ich jetzt die Datenbanken so verknüpfen kann dass ich weis wer bei welchem Treffen da war. Dies soll natürlich so ablaufen, dass auch neue Namen etc eingetragen werden können ohne dass dann alles neu umgebaut werden muss.

    Von euch soll natürlich kein fertiges Script kommen sondern so viel Hilfe dass ich mir die nötigen Mittel selber aneignen und verwirklichen kann

    Grüße
     
  2. 22. Oktober 2009
    AW: Zwei Datenbanken verknüpfen

    Die eine Tabelle mit den Personen und die andere mit den Treffen..
    Dann machste in jede eine neue Spalte rein und die nennst du zb P-ID (Personen-ID) und die in der Treffen-Tabelle nennste T-ID (Treffen-ID)..
    Diese halt durchnummerieren..
    Dann machste ne neue Tabelle und nennst die zB Position..
    Da machste denn 2 Spalten..
    In die eine die T-ID und in die andere die P-ID rein..
    Natürlich in dem Zusammenhang, ob die Leute bei dem jeweiligen Treffen waren..

    Und anhand dieser Position kannste denn immer Auslesen, dass Person 1 bei Treffen 1,2,3 und 4 war und das Person 2 nur bei Treffen 3 und 4 war..

    Das ist der Professionelle weg^^

    kannst auch einfach dem Treffen eine ID zuweisen und bei den Personen ne neue Spalte, wo die IDs der Treffen reinkommen... Trennen kannste die zB durch ein Semikolon ( ; ) und dann mit PHP auslesen indem du den String in ein Array aufteilst...

    Kommt halt drauf an wie und ob du die Daten auslesen lassen willst..
    MfG
     
  3. 22. Oktober 2009
    AW: Zwei Datenbanken verknüpfen

    Bsp.:

    Person (id, name)
    1, Martin
    2, Hermann
    3, Peter
    4, Sisi
    5, Franz

    Haus (id, bezeichnung)
    1, Villa
    2, Bauernhaus
    3, Unter der Brücke

    Person-wohnt-in-Haus (person_id, haus_id)
    1, 1
    2, 1
    3, 2
    4, 1
    5, 3

    Also hast du insgesamt 3 Tabellen und die 3 Tabelle ist die "Verbindungstabelle". Du kannst jederzeit neue Personen anlegen und sie auch umziehen lassen, bzw. ein neues Haus bauen.

    Ich hoffe es war für dich verständlich.

    Die SQL lautet so:

    Code:
    SELECT * FROM Person 
    JOIN Person-wohnt-in-Haus ON Person.id = Person-wohnt-in-Haus.person_id 
    JOIN Haus ON Person-wohnt-in-Haus.haus_id = Haus.id
    
    oder
    
    SELECT * FROM Person, Person-wohnt-in-Haus, Haus 
    WHERE Person.id = Person-wohnt-in-Haus.person_id AND
    Haus.id = Person-wohnt-in-Haus.Haus_id
    
    Ich hoffe ich habe keinen Fehler drin.

    Gruß
     
  4. 22. Oktober 2009
    AW: Zwei Datenbanken verknüpfen

    Einfach google nach replications tabllen befragen
     
  5. 22. Oktober 2009
    AW: Zwei Datenbanken verknüpfen

    OK das System hab ich verstanden. Wie geht man jetzt vor wenn man aber nicht nur jeweils "eine Person" in "ein Haus" sondern mehrere Personen in ein Haus stecken will? Dann bräuchte man ja wieder eine Spalte in der Verbindungstabelle die mehrere Personen sind :/
     
  6. 22. Oktober 2009
    AW: Zwei Datenbanken verknüpfen

    Das wurde doch erklärt...
    Person 1,2 und 4 wohnen in Haus 1...
    Du erstellst für jeden Bewohner einen neuen Datensatz..
     
  7. 22. Oktober 2009
    AW: Zwei Datenbanken verknüpfen

    Die dritte Tabelle ist hier gar nicht unbedingt notwendig.

    Du könntest es (wenn man mal bei diesem Beispiel bleibt) auch so machen:


    Code:
    Tabelle: Person
    
    id name haus_id
    ----------------------------------
    1 Hubert 1
    2 Harry 2
    3 Susi 1
    4 Manni 4
    5 Karl 4711
    6 Jürgen 2
    
    
    Tabelle: Haus
    
    id bezeichnung strasse
    -----------------------------------------
    1 Herrenhaus Lindenstraße
    2 Mehrfamilienhaus Palmenweg
    3 Absteige Am Hafen
    4 Nobelvilla Im Sack
    
    Durch den Fremdschlüssel in der Tabelle Person sparst du dir eine dritte Tabelle, die das alles verknüpft. Um bei der ganzen Thematik ein bisschen besser hinterzusteigen könntest du dir folgendes anschauen:
    Relationen (ein Beispiel)
    Normalisierung (Theorie)
    Relationen (Theorie)
     
  8. 22. Oktober 2009
    AW: Zwei Datenbanken verknüpfen

    Problem ist nur, dass in meinem Fall Person1 in mehreren Häusern wohnen müsste...
     
  9. 22. Oktober 2009
    AW: Zwei Datenbanken verknüpfen

    Ja dann machste das halt...
    Tausch halt die beiden Spalten einfach..
    Denn wohnt Person 1 in Haus 1, 2 und 4..
     
  10. 23. Oktober 2009
    AW: Zwei Datenbanken verknüpfen

    Person-wohnt-in-Haus (person_id, haus_id)
    1, 1
    1, 2
    1, 3
    4, 1
    4, 2
    ...
     
  11. 26. Oktober 2009
    AW: Zwei Datenbanken verknüpfen

    Hab mich jetzt gerade an dem Script versucht... Leider bekomme ich meine alten Daten nicht mehr mit angezeigt. Ausgelesen wird mit mysql_fetch_object liegts daran? Oder an dieser Form der Ausgabe $detail_result->id? Abfrage geht in etwa so... SELECT * FROM event, person WHERE event.id... Die Brücke wird noch eingebaut ich will alles nacheinander reinbaun damit ich peil was ich mach

    // Problem gelöst Script geht dank euch
     
  12. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.