Announcement

Collapse
No announcement yet.

Verknüpfung von zwei Tabellen mit primär-ids

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Verknüpfung von zwei Tabellen mit primär-ids

    Hallo

    ich habe hier eine MySQL Datenbank mit unterschiedlichen Tabellen. Nun möchte ich zwei Tabellen miteinander verknüpfen.

    Das ganze soll ein TagSystem für einen Newsblog werden.

    Die News werden in Tabelle 1 gespeichert. Diese hat einen PrimaryKey, der Auto_Increment ist. Weiterhin hat diese Tabelle Felder für die Texte, und Einstellungen der jeweiligen News.


    Jetzt hab ich mir gedacht, mach ich eine zweite Tabelle auf, in der jedes Tagwort einen Eintrag bekommt. Zusätzlich soll noch ein PrimaryKey rein der Auto_Increment ist und das Tagwort identifiziert. Und dann sollte da ja noch ein Feld rein in dem die IDs aus Tabelle 1 stehen die mit diesem Tag verknüpft werden sollen.

    Nun stell ich mir die Frage wie ich dieses ID Feld in der zweiten Tabelle darstelle in dem die IDs aus Tabelle 1 stehen sollen? Mach ich das nur als kommaseparierten String und werte den bei jedem auslesen aus oder gibt es da andere Wege des Datenbankdesigns um solche Verknüpfungen zu realisieren?
    Soweit ich das noch aus meinem Studium kenne sollte das ja eine 1 zu n Beziehung sein oder?

    Ich hoffe meine Frage ist verständlich. Sollte Fragen auftreten, so, schreibt diese bitte.

    Grüße
    Daimonion

  • #2
    Aus Sicht der Tag Tabelle gibt es für ein Tag (= ein Datensatz) n Sätze in der Newstabelle, leider ist es nicht so, dass umgekehrt jeder News Eintrag zu nur einem Tag Satz zeigt. Du brauchst also n:m statt 1:n!

    Deine Idee wäre auch möglich, entspricht aber nicht den relationalen Prinzipien. Nur mal 2 Szenarien.
    Wie willst Du mit einer solchen Aufzählung ein SQL bilden, um News Treffer eines oder mehrerer Tags zu selektieren?
    Wie werden bspw. die Daten eine falsch geschriebenen Tag korrigiert?
    Geht alles, aber umständlich und wahrscheinlich relativ unperformant. SQL arbeitet mengenorientiert.

    Du benötigst noch eine weitere Tabelle, die die Relation zwischen news und tags abbildet. Dort kommen einfach nur die beiden PK rein und Du bist fertig.
    Gruß, defo

    Comment


    • #3
      Hallo defo.

      Danke für deine Antwort. Ich hätte damals doch etwas besser in der Vorlesung aufpassen sollen. Dein Lösungsvorschlag mit der 3. Tabelle ist echt gut und damit kann ich mir relativ einfach mit zwei SQL Statements (1 für die NewsID und eins um die News zu lesen) alle News zu einem Tag holen. Super!

      Wenn ich das so schreibe denke ich mir, das geht doch sicher auch mit einer SQL? Kann man da was mit JOIN machen?
      Da bin ich leider noch nicht so weit drin. Werd mir gleich mal das Manual zu JOIN durchlesen.

      Danke auf jeden Fall schon mal für deine hilfreiche Antwort!

      Grüße
      Daimonion
      Zuletzt editiert von Daimonion; 20.05.2012, 11:29.

      Comment

      Working...
      X