dedlfix: Prinzipielle Frage zum Arbeiten mit nichtredundanten Datenbanken

Beitrag lesen

Tach!

Danke für diesen Exkurs, aber es geht jetzt überhaupt nicht um Ort oder Postleitzahlen. Ich habe das einfach nur als Beispiel genommen. Es handelt sich also nicht um etwas, womit ich mich gerade beschäftige.

Das war dann ein nicht ganz glücklich gewähltes, weil es eben Fragen zur prinzipiellen Datenstrukturierung aufwirft, und man am Ende bei solch einem Anwendungsfall vermutlich eine bessere Struktur nimmt und dann das Problem nicht mehr hat.

Ich will eigentlich nur _prinzipiell_ wissen, was so die Standardmethode ist, wenn Daten in einer Tabelle nur mit einer Zahl, die auf eine ID einer anderen Tabelle verweist, existieren.

Das wurde ja schon beantwortet, man zeigt den Namen an und arbeitet intern aber nur mit dem Key, also der Zahl. Wenn man ein mehrstufiges Formular hat, kann man vorher ermittelte Werte ruhig auch über Hidden-Felder mitgeben. Die Manipulierbarkeit ist nicht wirklich ein Problem, wenn man stattdessen auch einfach zurückgehen könnte und einen anderen Wert aus der Auswahlliste wählt. Validierungen sollten sowieso erst am Ende vorgenommen werden. Zwischendurch dient das nur dem Komfort des Anwenders, dass er Werte gleich korrigieren kann.

Und wie man in der Regel vorgeht, wenn nun neue Daten mittels Formular in jene Tabelle geschrieben werden sollen, wo ein Teil der Information nur mit besagter verweisender Zahl vertreten ist.

Die Frage wäre dann erst einmal, wie man das formulartechnisch hinbekommt. Trägt man Werte in die Liste über ein separates Formular ein und hat dann nur eine starre Liste? Nimmt man eine Liste mit festen Werten und daneben ein Eingabefeld für einen Freitext (wenn in der Liste "anderer Wert" gewäht wurde)? Oder macht man sich eine Combobox (Liste und Freitextfeld in einem - geht meines Wissens nur mit Javascript)? Oder nimmt man ein einfaches Feld mit Autocompletion? Je nachdem, wie du dich für deinen Anwendungsfall entscheidest, hast du dann andere Voraussetzugnen, an die eingegebenen Daten zu kommen. Ein Autocompletion-Feld liefert dir nur einen String und keinen Key dazu aus der Datenbank (wenn du nicht was mit einem Hidden-Feld zauberst, das zur Autocompletion dort den Key einträgt). Eine starre Liste liefert dir den Key, den du im Option-Element im value-Attribut eingetragen hast. Die anderen Optionen liefern dir den Key oder einen neuen Text. Letzteren musst du natürlich erst einmal in die Tabelle eintragen, um den Key zu bekommen (bei Autoincrement zumindest).

dedlfix.