Entscheidungszwang

Hallo zusammen,

ich möchte für ein kleiner (später größeres) Kalenderprogramm postgreSQL als Speicher benutzen.

Der Benutzer soll später die Möglichkeit haben, aus definierten Vorlagen Termintypen auswählen zu können. Gleichzeitig möchte ich dem Aministrator de Möglichkeit geben, neue Termintypen erstellen zu können. Termine können wiederholt werden. (Täglich, Wöchentlich, Monatlich, Nie). Es ist aber immer nur einer dieser Zustände möglich. Jetzt ist die Frage: Wie kann ich mit SQL erreichen, dass immer nur eins dieser Felder (boolean) den Wert “true” haben kann, wenn ich den Standardwert bei allen außer bei “keine Wiederholung” auf false setze und bei “keine WIederholung” auf true.

Ich hoffe ihr könnt mir helfen.

LG
Christoph

Erstelle eine Tabelle, die Deine Termintypen enthält. Also, vereinfacht, 2 Spalten: id serial primary key, termintyp text.
Deinen Default-Typ trägst Du da z.B. mit id=1 ein.
Dann Deine Termintabelle mit einem Feld termintyp, welches auf diese termintypen-Tabelle verweist (termintyp int references termintypen default 1).

Dein obiges Zitat klingt nach ‘ich mache für jeden Termintyp eine Spalte’, was extremst schlecht wäre…

Andreas

Naja, der Punkt ist eben, dass diese Werte nur die Vorlagen sind. Dass heißt, man kann die Werte hiterher immer noch ändern. Diese würden dann in der Tabelle mit den Terminen gespeichert werden.

Aber irgendwie sollte ich gennerell mal über mein DB Design Nachdenken dünkt mir :slight_smile:

Ja, solltest du :smiley:
Einen Kalender in SQL abzubilden ist eine komplizierte Aufgabe.
Nicht von der SQL-Seite, aber es gibt soooo viele Sonderfälle, die berücksichtigt werden wollen …

Dein Problem ist also kein richtiges PostgreSQL Problem, du wirst erst mal zu Papier und Stift greifen müssen :wink: