Designproblem: Ein Datensatz soll aus Softwaresicht als "selektiert" markiert werden
-
Man hat eine Tabelle die irgendwo im Programm um Einträge erweitert oder reduziert werden kann.
Stets gilt ein einzelner Datensatz der Tabelle aus Sicht der Software als selektiert bzw. ausgewählt.
Beispiel: Eine simple Benutzerverwaltung. In den Settings können Accounts angelegt werden. Außerdem kann dort der aktuelle Benutzer sich selbst auswählen, weil die Daten im Laufe des Programms irgendwie verwendet werden. Da meistens der gleiche User vor der Kiste sitzt, soll das Programm sich diese Auswahl merken. (Es geht NICHT um eine andere Lösung für Useraccounts. Das war nur ein Beispiel für ein wiederkehrendes Problem).
Für gewöhnlich lege ich dann eine weitere Tabelle an die stets nur einen (oder keinen) Datensatz enthält, nämlich einen Fremdschlüssel auf den "selektierten" Datensatz der eigentlichen Tabelle.
Das scheint mir keine saubere Lösung zu sein. Aber wie sollte man es besser realisieren?
Man könnte die eigentliche Tabelle um eine Spalte "Selected" erweitern. In dieser Spalte sind stets alle Einträge bis auf einen genullt. Das ist wohl noch unsauberer.
Oder man speichert die ID des selektierten Datensatzes eben nicht in der Datenbank sondern in den Programmsettings (irgendeiner Datei). Auch nicht so das Wahre.
Hat jemand eine Idee?
-
Megusta schrieb:
Für gewöhnlich lege ich dann eine weitere Tabelle an die stets nur einen (oder keinen) Datensatz enthält, nämlich einen Fremdschlüssel auf den "selektierten" Datensatz der eigentlichen Tabelle.
Naja, einen pro Arbeitsstatuio/User/... hoffentlich.
Oder ist die Datenbank etwa lokal?Das scheint mir keine saubere Lösung zu sein. Aber wie sollte man es besser realisieren?
Man könnte eine Tabelle für alle diese Einstellungen zusammen machen, mit Name + Value.
Man könnte die eigentliche Tabelle um eine Spalte "Selected" erweitern. In dieser Spalte sind stets alle Einträge bis auf einen genullt. Das ist wohl noch unsauberer.
Ja, das wäre grässlich.
Oder man speichert die ID des selektierten Datensatzes eben nicht in der Datenbank sondern in den Programmsettings (irgendeiner Datei). Auch nicht so das Wahre.
Finde ich nicht schlimm. Wo wäre das Problem?