Struktur meiner DB

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

  • Struktur meiner DB

    Hallo MySQL-Forum,
    ich habe als Anfänger ein Problem, dass ich wohl ohne Hilfe so schnell nicht gelöst bekomme.

    Ich habe ein Projekt, dass sich mit Hörspielen befaßt.

    Meine Datenbankstruktur sieht so aus:
    Jedes Hörspiel hat m-Sprecher und jeder Sprecher kann m-Rollen übernehmen.

    tbl_hsp|rel_hsp_sprecher| tbl_sprecher|rel_rollen_sprecher| tblrolle
    hspID |hspID | sprecherID |rollenID |rollenID
    Titel |sprecherID | Name |sprecherID |R _name

    Meine Anfrage z.B.lautet:
    SELECT Titel, Name, R_name
    FROM tbl_sprecher, rel_hsp_sprecher, tbl_hsp, tblrolle,rel_rollen_sprecher
    WHERE tbl_hsp.hspID = 1
    AND tbl_hsp.hspID = rel_hsp_sprecher.hspID
    AND rel_hsp_sprecher.sprecherID = tbl_sprecher.sprecherID
    AND rel_rollen_sprecher.rollenID = tblrolle.rollenID
    AND rel_rollen_sprecher.sprecherID = tbl_sprecher.sprecherID order by Name

    Als Ergebns bekomme ich jetzt den Titel (hsp.hspID=1), alle Sprecher mit ihren Rollen, aber auch die Sprecher der Folge1 die in anderen Hörspielfolgen eine Rolle haben, mit den Rollennamen. Das ist auch das ,was man mit der Anfrage erzielen sollte (wie mittlerweile herausgefunden habe. )
    Wie bekomme ich es hin, das die Ausgabe nur die Sprecher/Rollen-Paare ausgibt, die für eine Folgennummer relevant sind ?
    Ich vermute, meine Db-Struktur ist "falsch" ?
    Würde mich freuen, wenn eine erfahrener DB-Bastler sich das mal anschaut.
    Außerdem frage ich mich, wenn ich mit PHP ein formular zur Eingabe der Daten bastel ob das ganze überhaupt noch performant ist (ist es wohl eher nicht). Den durch die rel_x_y-tabellen habe ich ja nur Zahlenpaare einzugeben ?

  • #2
    Hi Du,

    Würde mich freuen, wenn eine erfahrener DB-Bastler sich das mal anschaut.
    Dazu zähl ich zwar nicht, aber ich glaube Du brauchst ein Ausschlusskriterium, welches Du durch ein Set zwischen Hörspiel und Rolle erreichen kannst.

    Grüße, Ultra.

    Kommentar


    • #3
      Hallo. Ich würde dir folgende Struktur vorschlagen. Mit dieser kannst du dann mit entspr. mysql-Abfragen alle Infos einfach und sauber rausfischen.

      Table 1: hoerspiele; Felder: id_hoerspiel, name_hoerspiel
      Table 2: rollen; Felder: id_rolle, name_rolle
      Table 3: sprecher; Felder: id_sprecher, name_sprecher
      Table 4: zuordnungen; Felder: id_hoerspiel, id_rolle, id_sprecher

      Das entspricht der einfachsten Datenbankstruktur und sie ist demenstprechend auch sehr einfach zu handhaben (mit joins)

      mfg

      Kommentar


      • #4
        würd ich auch so machen, ist am einfachsten und komplexesten
        Zuletzt geändert von cheeby; 21.01.2003, 09:36.
        Seien wir realistisch, versuchen wir das unmögliche. - Chè Guavara

        Kommentar


        • #5
          @CHnuschti
          Wow...tenäre Beziehungen *befürwort*! Das ist doch mal was!!!

          Gruß oms
          {brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!

          Kommentar


          • #6
            @CHnuschti

            Danke dass du dir meine Fabuliererei durchgelesen hast und den Tipp!
            Werde ich gleich mal ausprobieren!

            Kommentar

            Lädt...
            X