Ilja: DB-Design

Beitrag lesen

yo,

Eine Veranstaltung beginnt zu einem Zeitpunkt und endet zu einem späteren Zeitpunkt. Das sind exakt zwei Spalten "Start" und "Ende"

als ergänzung vielleicht noch, dass man nicht unbedinkt einen endpunkt braucht, sondern es auch über eine startwert und eine länge realisieren kann. beides sind gehbare möglichkeiten.

Den Zeitraum der Veranstaltung durch eine n:m-Beziehung auf eine Monatsliste abzubilden ist keine gute Idee. Erstens ändert sich die Monatsliste nicht, ist also fix.

ob eine entität feste werte hat oder nicht, ist kein grund sie nicht trotzdem aufzunehmen, solange sie bestandteil des abzubildenen modells ist.

Und ist außerdem unnötige Redundanz, da man das exakte Datum der Veranstaltung sowieso speichern muß. Daraus läßt sich jederzeit auch der Monat bzw. die Monate generieren, in dem die Veranstaltung liegt.

zum einen ensteht dadurch keine redundanz, wenn man die monate in einer extra tabelle aufnimmt. alles andere wären fremdschlüssel und diese stellen keine redundanz da. und wenn ich die entitäts-tabelle ganz weglasse und die monate durch die beziehungs-tabelle herleite, dann kann es zu schwierigkeiten führen, da man nicht automatisch davon ausgehen kann, dass immer alle monate dort aufgeführt werden. so muss ich bestimmte abfragen in deinem falle in eine programmlogik auslagern, die zudem alle monate kennen muss, wenn ich zum beispiel wissen will, in welchen monaten gibt es keine veranstaltungen. dann kann ich das nicht mehr mit SQL abfragen, da die datenbank keine monate kennt, die nicht auch dort aufgeführt werden.

Ilja