# SQL wie macht man das?



## Kingkook (22. Feb 2012)

Liebe Com,

meine letzten SQL-Tage sind viele viele Monde her, aber jetzt brauch ich es wieder komm aber sorichtig nicht klar.

Momentan habe ich eine Tabelle mit 3 Felder:
KursID,Kursteilnehmer,bereits teilgenommen.

dabei gilt:
Es gibt beliebig viele Kurse mit verschiedenen ID's.
In jedem Kurs sind beliebig viele Teilnehmer ( diese haben entweder schon mal teilgenommen oder nicht)
Jeder Teilnehmer kann an beliebig vielen verschiedenen Kursen teilnehmen.

momentan schreibe ich alles in eine Tabelle ohne Schlüssel, aber wiederholen sich bei mir Datensätze mehrfach.Wie kann ich diese DB am besten gestalten?

Gruß Kooki


----------



## Peingebreck (23. Feb 2012)

Splitte das ganze aus normalformtechnischen Gründen auf in 2 Tabellen. Kurs und Teilnehmer. PK für Kurs ist schon als ID gegeben, Teilnehmer braucht noch einen, da Namen ja auch doppelt vorkommen können sowie die jweilige KursID als FK (wenn derjenige am Kurs teilnimmt).Das Attribut "teilgenommen" entfällt dann logischerweise.

Greetz


----------



## Camino (23. Feb 2012)

Sinnvoller wären wohl eher 3 Tabellen:

1.) Kurse
2.) Kursteilnehmer
3.) Kursteilnahmen

In allen 3 hast du eine ID als Primärschlüssel. In der 1. alle Kurse, in der 2. alle Personen und in der 3. welche Person an welchem Kurs teilnimmt (also die Fremdschlüssel aus 1. und 2.).


----------



## Peingebreck (23. Feb 2012)

Ach verdammt. Stimme zu, ist schon etwas spät


----------

