Tabellenerstellung und Normalisieren...?

Hallo Forum!
da ich ein blutiger Newbie im Bereich MySQL bin und ich eine Videodatenbank erstelle möchte frage ich mal bei euch nach da ich mit einer Sache nicht ganz durchblicke.
Die Videofiles liegen in unterschiedlichen „Pakteten“ zur verfügung. Entweder sind es pro Paket 4 Stück (2 Formate mit je 2 Auflösungen)
oder es sind Pakete mit einzelenen oder auch mal zwei Files vorhanden.
Bei einer Tabellenerstellung hierfür würde aber das bedeuten, dass der selbe Filmname in der Tabelle dann bis zu 4 mal auftauchen kann.
Zum einen kann das nicht einer Normalisierung entsprechen und zum anderen möchte ich dem Suchenden auf der Datenbank nicht 4 verschieden Einträge mit dem gleichen Namen präsentieren.
Es sollte wohl eher so sein, das er sieht wie der Film heist und es ihn in 4 verschiedenen Ausführungen gibt.
Hat jemand eine Idee wie die Tabelle unter MySQL dazu aussehen kann?

Am einfachsten machst du drei Tabellen:

FILM( FILM_ID, FILM_NAME )
FORMAT( FORMAT_ID, FORMAT_NAME )
FILM_FORMAT( FILM_ID, FORMAT_ID )

In der Tabelle FILM legst du alle Filme ab, in der Tabelle FORMAT alle Formate, und in der Tabelle FILM_FORMAT verknüpfst du die beiden. D. h. in FILM_FORMAT hast du für jedes Format in dem ein Film vorliegt einen Eintrag.

Die Tabellen lassen sich natürlich falls notwendig um weitere Felder erweitern.

Grüße, Robert

hmmm…schön und gut, aber dann hätte ich entweder in der Tabelle FILM unter Umständen 4x denn gleichen FILM_NAME stehen, oder in der Tabelle FILM_FORMAT 4x die gleiche FILM_ID.
Ich möchte eigentlich die Tabelle FILM unter PHP in durch eine Schleife (als Zähler dient dann FILE_ID) in einem FRAME tabellarisch ausgeben.
Wenn dann da 4x der gleiche Film aufgelistet wird finde ich es nicht so pralle.
Viellmehr sollte es so sein, das der Filmname einmal angezeigt wird, und unterhalb die möglichen Formate und Auflösungen.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

hmmm…schön und gut, aber dann hätte ich entweder in der
Tabelle FILM unter Umständen 4x denn gleichen FILM_NAME
stehen, oder in der Tabelle FILM_FORMAT 4x die gleiche
FILM_ID.

Das stimmt, aber das wirst du in einem relationalen Datenmodell nicht umgehen können.

Ich möchte eigentlich die Tabelle FILM unter PHP in durch eine
Schleife (als Zähler dient dann FILE_ID) in einem FRAME
tabellarisch ausgeben.
Wenn dann da 4x der gleiche Film aufgelistet wird finde ich es
nicht so pralle.
Viellmehr sollte es so sein, das der Filmname einmal angezeigt
wird, und unterhalb die möglichen Formate und Auflösungen.

Ein SELECT gibt nunmal immer nur zweidimensionale Results zurück. Lösen würde ich dein Problem indem du zuerst einmal im SELECT die Tabellen joinst:

SELECT \* 
 FROM film, film\_format, format 
 WHERE film.film\_id = film\_format.film\_id AND format.format\_id = film\_format.format\_id

Was du dann bekommst schaut (ohne IDs) so aus:
FILM1 FORMAT1
FILM1 FORMAT2
FILM2 FORMAT1
FILM2 FORMAT2

Das kannst du dann folgenderweise abarbeiten: Zuerst immer den Film des aktuellen Datensatzes abfragen. Wenns ein anderer Film ist als im vorherigen Datensatz (bzw. der erste Film) dann gibst du eine Film-Überschrift aus. Zusätzlich gibst du auf jeden Fall das Format aus. Und dann gehst du zum nächsten Datensatz und machst dasselbe wieder.

Damit lässt sich das Problem mit einer einfachen Schleife lösen.

Grüße, Robert