Studium, Ausbildung und Beruf
 StudiumHome   FAQFAQ   RegelnRegeln   SuchenSuchen    RegistrierenRegistrieren   LoginLogin

n:m Beziehung richtig auflösen
Neues Thema eröffnen   Neue Antwort erstellen
Foren-Übersicht -> Informatik-Forum -> n:m Beziehung richtig auflösen
 
Autor Nachricht
ITA-Mika
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 24.04.2010
Beiträge: 8

BeitragVerfasst am: 24 Apr 2010 - 12:56:05    Titel: n:m Beziehung richtig auflösen

Hallo,

ich mache zur Zeit in meiner Ausbildung ein Projekt mit Php, HTML und natürlich Datenbanken.
Eine Teilaufgabe ist dabei die Tabelle Filme und Leihe mit einer m:n Verbindung zu erstellen. Der Grund ist, dass es mehrere Exemplare von einem Film gibt und die auch mehrfach ausgeliehen werden können.

Mein problem ist jetzt, dass ich nicht weiß mit was ich die Zwischentabelle auffüllen soll. In Tabelle Filme steht Nr, titel, kategorie, system, preis und fsk. In Tabelle leihe steht die kunden_nr die Filme_nr, ausleihdatum, tage und rückgabedatum.

In der Zwischentabelle müsste ja eig. was mit anzahl stehen was ich mit php runter und raufzählen könnte !?

MfG ITA-Mika
sarc
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 21.09.2006
Beiträge: 2657

BeitragVerfasst am: 24 Apr 2010 - 13:36:39    Titel:

Die Tabelle Leihe ist schon deine Zwischentabelle. Sie realisiert die m:n Beziehung zwischen Filmen und Kunden. Wenn du wissen willst, ob ein Film noch vorhanden ist, könntest du ne entsprechende Anfrage an die Leihe-Tabelle stellen, die zählt, wie oft dieser Film schon ausgeliehen worden ist.
ITA-Mika
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 24.04.2010
Beiträge: 8

BeitragVerfasst am: 24 Apr 2010 - 13:45:43    Titel:

Aber zwischen der Leihe und der Filme Tabelle besteht noch eine n:m Beziehung, weil (in unserem Fall) kann ja ein Film z.B. James Bond mehrfach zur gleichen zeit ausgeliehen werden und anders rum ist es ja klar, weil du ja auch gleichzeitig mehrere verschiedene ausleihen kannst.

Oder seh ich da was falsch ? Ich hab vom Chef den Tipp bekommen, dass dazwischen noch eine Tabelle muss.

Vllt. liegt es ja daran, dass ich eine Datenbank vorgegeben bekommen habe!?
sarc
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 21.09.2006
Beiträge: 2657

BeitragVerfasst am: 24 Apr 2010 - 14:30:33    Titel:

Zwischen Kunde und Filme besteht die n:m Beziehung. Zwischen Leihe und Filme besteht (zumindest in der aktuellen Form) eine n:1 Beziehung. Denn jeder Eintrag in Leihe enthält genau einen Film, während ein Film mehrmals ausgeliehen werden kann.

Was natürlich sein könnte ist (und was sinnvoll wäre) ist, dass jeder Ausleihvorgang selbst mehrere Filme enthalten könnte, die nicht jeder nen eigenen Eintrag in der Tabelle haben sollen. Dann müsstest du für die Ausleihvorgänge ne ID einführen (und die Film_nr aus der Tabelle rausschmeißen). Dann gibts ne zusätzliche Tabelle, die Film_nr und Ausleih-Ids als Einträge enthält, wobei ein Eintrag bedeutet, dass der Film mit der entsprechenden Nummer im zugehörigen Ausleihvorgang enthalten ist.
FH-Spacken
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 20.04.2009
Beiträge: 1766

BeitragVerfasst am: 25 Apr 2010 - 11:34:40    Titel:

Sarc hatte schon recht, denn die Tabelle Kunde fehlt nämlich. Die muss auch angegeben sein.

Wäre sie nicht vorhanden, würde das Ganze etwa so aussehen:

Filme(FlimNr, titel, kategorie, system, preis, fsk)
Leihe(kunden_nr , Filme_nr*, ausleihdatum, tage, rückgabedatum, KundenName, Geburtsdatum)

Die Tabellen liegen schon in 1NF vor. Jetzt musst du nur noch die 2NF und 3NF bilden. In Leihe haben wir nämlich im Key eine Determinante KundenNr:

Filme(FlimNr, titel, kategorie, system, preis, fsk)
Leihe(kunden_nr* , Filme_nr*, ausleihdatum, tage, rückgabedatum)
Kunde(Kunden_Nr, KundenName, Geburtsdatum)
ITA-Mika
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 24.04.2010
Beiträge: 8

BeitragVerfasst am: 25 Apr 2010 - 21:21:00    Titel:

Die Datenbank besitzt normal schon 3 Tabellen und ist auch schon in der 3.Nf Tabelle Kunde leihe und Filme aber es ist ja nicht möglich mit der Datenbank so einen Film doppelt auszuleihen also 2x James Bond oder !?

Vllt. kann ich das gerad nicht so erklären aber gibt es keine variante, wo es eine Tabelle zwischen Filme und Leihe gibt ?
ITA-Mika
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 24.04.2010
Beiträge: 8

BeitragVerfasst am: 29 Apr 2010 - 22:17:42    Titel:

Ich glaub jetzt weiß ich wie ich es genauer fomulieren kann !

Also: Ich möchte mit einer eingabe 2 (oder mehrere) verschiedene Filme ausleihen. Folge ich müsste mit einer insert into mehrere filme in die leihe eintragen aber das geht ja so einfach nicht !?

Vielleicht versteht ihr mich jetzt besser Wink

Gruß
sarc
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 21.09.2006
Beiträge: 2657

BeitragVerfasst am: 30 Apr 2010 - 12:47:26    Titel:

Ich weiß zwar grad nicht, wie das mit deinem restlichen Problem zusammenhängt, aber du kannst mit einer Anweisung mehrere Einträge anlegen. Schau einfach mal hier: http://dev.mysql.com/doc/refman/5.1/de/insert.html ungefähr in der Mitte der Seite ist der Fall beschrieben.
Beiträge der letzten Zeit anzeigen:   
Foren-Übersicht -> Informatik-Forum -> n:m Beziehung richtig auflösen
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Chat :: Nachrichten:: Lexikon :: Bücher :: Impressum