Vor kurzem habe ich angefangen, an einem Legacy-System zu arbeiten. Die Leute, die es entwickelt haben, kamen auf die Idee, eine Liste von Zeichenfolgen in einem einzigen Feld der Datenbanktabelle zu speichern. Nehmen wir an, es handelt sich um eine Kennung für ein Objekt, das weder eine Darstellung noch Daten in der Datenbank enthält. Der Bereich dieser Kennungen wird in der Produktion relativ klein sein.
Andererseits sagt mir meine Intuition und mein "guter Designgeschmack", dass es in einer separaten Tabelle dargestellt werden sollte (ähnlich einer Tabelle, die zur Darstellung von Viele-zu-Viele-Beziehungen verwendet wird).
Ist ihr Ansatz wirklich schlecht und es wäre besser, ein Refactoring zu starten? Wenn ja, welche schlimmen Folgen kann das ursprüngliche Design in Zukunft haben? Gibt es relationale Gestaltungsprinzipien, die diesen Ansatz erklären?
Zur Antwort auf Kommentare bearbeiten:
Wie ich vermute, haben sie diesen Ansatz nicht verwendet, um ein bestimmtes Problem wie die hierarchische Strukturierung auf knifflige Weise zu lösen. Das wahrscheinlichste Szenario war der Fall, dass sie einfach unter Zeitdruck arbeiteten und neue Funktionen so schnell wie möglich implementieren mussten.
Ich bin sicher, dass das Feld zuvor einen einzelnen Wert darstellte. Sie wollten eine Funktion implementieren, um mehr als einen Wert zu speichern, und versuchten, Datenbankmigrationen zu vermeiden.