Veröffentlicht 3. Juni 200817 j Hallo zusammen, ich soll eine Datenbank für einen MS-SQL-Server entwerfen. Es geht um die Datenerfassung einer großen Konferenz. Die Konferenz dauert mehrere Tage und umfasst verschiedene Veranstaltungen (Forum, Vorträge, Workshops, usw.) die zu verschiedenen Zeiten in bestimmten Räumen stattfinden und von Personen geleitet werden. Hier mein erster Entwurf: Und folgende Gedankengänge: (1) Jede Veranstaltung hat eine Zeit und einen Veranstaltungstyp. (2) Jede Veranstaltung kann mehrere Räume, Teilnehmer und Leiter haben. (3) Jeder Raum hat (im laufe der Zeit) mehrere Veranstaltungen. (4) Jeder Teilnehmer/ Leiter hat mehrere Veranstaltungen. Meine Fragen: (1) Habe ich irgendwelche Eventualitäten vergessen? (2) Leiter können doch auch Teilnehmer sein bzw. sind es auch. Wie kann ich das umsetzen? In der Lösung müßte ich ein und die selbe Person 2x erfassen. Viele Dank für Eure Hilfe, Michael
3. Juni 200817 j (2) Jede Veranstaltung kann mehrere Räume, Teilnehmer und Leiter haben. (2) Leiter können doch auch Teilnehmer sein bzw. sind es auch. Wie kann ich das umsetzen? In der Lösung müßte ich ein und die selbe Person 2x erfassen. Hmm wirklich ?? -> Ein Leiter ist nur Leiter in dieser EINEN Veranstaltung in einer anderen ist er Teilnehmer Deshalb: Personentabelle (ohne Funktion wie Leitung / Teilnehmer) 2 Tabellen: 1 x Veranstaltung-Leitung 1 x Veranstaltung-Teilnehmer mit jeweils den Fremdschlüssel auf Person. Diese "Zwischentabelle" wird dann mit der Veranstaltungstabelle verknüpft. Bei den Räumen würde ich umgekehrt vorgehen und zwar gibt es x Räume zu jeden Raum gibt es x Zeiten und zu einer bestimmten Zeit in dem Raum gibt es EINE Veranstaltung. Gruß aus München Hans-Jörg
4. Juni 200817 j Hallo Hans-Jörg, also kurz: Ich soll zwei m:n-Beziehungen zwischen den Tabelle Personen und Veranstaltung machen!? Diese wird ja dann in zwei (hier dann vier) 1:n-Beziehungen aufgesplittet. Bei der Sache mit den Räumen und der Zeit stehe ich noch etwas auf dem Schlauch. Kannst du vllt. nochmal was dazu sagen? Vielen Dank, Michael
5. Juni 200817 j Hallo, nein keine m:n Beziehung sondern mit Zwischentabelle Arbeiten. Veranstaltung -> Veranstaltungsleiter -> Person ==> Somit kann sogar eine Veranstaltung x Leiter haben Veranstaltung -> Veranstaltungsteilnehmer -> Person ==> Somit kann sogar eine Veranstaltung x Teilnehmer haben Veranstaltung, Veranstaltungsleiter, Veranstaltungsteilnehmer, Person sind jeweils Tabellen. Somit ist zwischen Veranstaltung und Veranstaltungsleiter eine 1:n Beziehung und zwischen Person und Veranstaltungsleiter auch eine 1:n Beziehung So meinte ich das mit den Räumen Tab.Raum -> RaumID -> RaumNr -> ... Tab.Raumbelegung -> RaumBelegID -> RaumID -> VeranstaltungÃD -> Zeit von -> Zeit bis -> ... Zwischen Raum und Raumbelegung hast du nun wieder eine 1:n Beziehung Insgesamt sieht es ungefähr so aus Raum --------------- 1:n ----> Raumbelegung Veranstaltung ------ 1:n ----> Raumbelegung Veranstaltung ------- 1:n ----> Veranstaltungsleiter Veranstaltung ------- 1:n ----> Veranstaltungsteilnehmer Veranstaltungsleiter - 1:n ----> Person Veranstaltungsteiln -- 1:n ----> Person Ich hoffe es ist verständlich was ich meine ! Gruß
5. Juni 200817 j Hallo Hans-Jörg, vielen Dank für deine Antwort! So etwas in der Art habe ich jetzt auch (siehe Anhang). Was ist der Unterschied zwischen deiner beschrieben Personen-Veranstaltung-Beziehung und einer m:n-Beziehung? Die wird doch auch mittels einer Zwischentabelle (hier: Teilnehmer, Leitung) in zwei 1:n-Beziehungen aufgelöst!? Vielen Dank nochmal, Michael
9. Juni 200817 j [off-topic] mit was für einem tool hast du das er-modell gemacht? gibts da auch was spezielles für linux? thx! [/offtopic]
9. Juni 200817 j mit was für einem tool hast du das er-modell gemacht? gibts da auch was spezielles für linux? thx! Schau dir das mal an: SourceForge.net: DB Designer Fork
10. Juni 200817 j Eine m:n Beziehung wäre es wenn du KEINE Zwischentabelle nutzen würdest. :confused: Wie löst du denn in einer Datenbank eine m:n - Beziehung, ohne Zwischentabelle auf?
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.