Filmdatenbank mit verschieden benutzern(listen)

nobaschwa

Mitglied
hi!

ich würde gerne eine Filmdatenbank programmieren für nen paar freunde und mich. jetzt hatte ich die idee alle filme in eine tabelle zu schreiben und einfach noch ein feld einfügen in dem die namen von den leuten stehen die den film haben. so dass ein film nur einmal eingefügt werden muss und ein benutzer erstmal suchen kann ob der film schon in der datenbank ist und ihn dann einfach zu seiner liste hinzufügen kann.

also meine frage: geht es da ich in ein tabellenfeld mehrere namen von benutzern einfügen dann aber einzeln auslesen kann z.B. im feld stehen klaus, herbert ,und hans und ich möchte jetzt aber nur alle filme von herbert anzeigen lassen geht das mit php und mysql und wenn ja wie
UND: wie kann ich noch mehr namen in dieses feld mittels php anhängen

danke schonmal

bis denne
 
Das würde rein Theoretisch in ner schlecht geproggten DB gehen, aber sowas macht man einfach nicht!

Sowas w#re ne 0te Normalform.

So als Anregung: google nach datenbank normalformen etc. und lies dir das mal durch und dann überlegst du dir das nochmal genau.
 
Erstmal Willkommen!
Also ich rate Dir 2 Dinge.
1.: Lege eine Tabelle mit 2 Spalten (Name und Film) an, in die Du die Daten speicherst.
Bsp:
Name=Uwe, Film=Matrix
Name=Uwe, Film=Prodator
Name=Peter, Film=Matrix
Name=Hans, Film=Schweigen der Lämmer
...
Dann könntest Du Dir die Daten auslesen und mit PHP anzeigen lassen, z.B. so:
Film|Name
Matrix|Uwe, Peter
...

Und 2.: Achte bitte auf die hier gültige Netiquette (z.B. was die Groß-/Kleinschreibung betrifft).

redlama
 
redlama hat gesagt.:
Erstmal Willkommen!
Also ich rate Dir 2 Dinge.
1.: Lege eine Tabelle mit 2 Spalten (Name und Film) an, in die Du die Daten speicherst.
Bsp:
Name=Uwe, Film=Matrix
Name=Uwe, Film=Prodator
Name=Peter, Film=Matrix
Name=Hans, Film=Schweigen der Lämmer
...
Dann könntest Du Dir die Daten auslesen und mit PHP anzeigen lassen, z.B. so:
Film|Name
Matrix|Uwe, Peter
...

Und 2.: Achte bitte auf die hier gültige Netiquette (z.B. was die Groß-/Kleinschreibung betrifft).

redlama

Erklärs ihm doch nich Falsch :/ wenn schon dann bitte mit nem ID auto_increment feld und 3 tabellen: film user und filmuser tabelle.
 
Bitte tu das nicht!
Ich weiß, manchmal nerve ich mit der Normalisierung, aber ich halte sie für so wichtig, dass ich immer wieder darauf hinweisen muss.
Schau z.B. bei Wikipedia was damit gemeint ist.

Im Prinzip müsste das, wenn es "normal" ist bei Dir so aussehen:
Tabelle Filme mit FilmID, FilmTitel etc.
Tabelle User mit UserID, Username etc.

Und nun kommt der Trick:
Eine Tabelle Filmbesitzer, mit folgenden Attributen:
UserID, FilmID

Hier trägst Du immer ein Paar von Film und User ein.
Also immer ein User, der den Film besitzt und den Film, beide gekennzeichnet durch ihre ID.

Aus dem Kopf müßte ein SQL-Query zum Abfragen von allen Filmen eines Users (im Beispiel derHans) ungefähr so aussehen:
Code:
SELECT Filme.FilmTitel, Filme.weitereFilmAttribute FROM User,Filme,Filmbesitzer WHERE Filmbesitzer.FilmID=Filme.FilmID AND Filmbesitzer.UserID=User.UserID and User.Username ='derHans';
Ich weiß, dass es schöner mit JOINS und so ist, aber um es ungetestet aus dem Kopf zu schreiben, mache ich so weniger Fehler. Wenn es nicht performant ist, muss man das doch noch in JOINS umstricken.
Gruß hpvw

EDIT: warum bin ich nur so langsam, als ich mit schreiben anfing, war noch kein Beitrag, außer dem des Erstellers?
 
oder du machst zwei tabellen, verknüpfst die beiden und schreibst dann einfach hinterher in die tabelle mit den namen, die ids der filme ein, oder umgekehrt...
wäre auch ne möglichkeit..
aber Sicaine hat schon recht. ließ dir das mal durch mit den Normalformen, vl. kommst du dann selbst auf was...
hatte irgendwo eine ansehnliche präsentation dazu gemacht in der schule, aber hab jetzt grad keine ahnung wo, sonst würd ich dir die eben schicken
 
Danke ertsmal für eure Antworten.

Ich habe mich wohl nichtrichtig ausgedrückt bzw. etwas vergessen.
Also:
1. In der Datenbank steht nicht nur der Filmtitel sondern auch noch Genre etc und ich möchte verhindern das jeder Benutzer den ganzen Kram nochmal eingeben muss...er soll einfach nachschauen können ob ein Film schon in der Datenbank ist und den Eintrag einfach in seine Liste übernehmen konnen.

2. Jeder Benutzer soll eine Liste mit seinen Filmen anzeigen lassen und z.B. auch nach Genre sortieren lassen können.

bis denne


edit: mmhhh...jetzt war ich wohl zu langsam :-(

danke für eure antworten ich lese mir jetzt erstma den eintrag im wikipedia durch und versuchs einfach mal
 
Zuletzt bearbeitet:
@Sicaine und hpvw: Wieso sollte man 3 Tabellen anlegen, obwohl man nur 2 Felder bräuchte? Und warum eine ID anlegen?
Das erklärt mir mal bitte, ...!

redlama
 
Und? Das is doch damit möglich... Lies erstmal was normalieiseren is und dann mach bitte weiter.
 
Zurück