Recientemente, comencé a trabajar en algún sistema heredado. Las personas que lo desarrollaron tuvieron la idea de almacenar una lista de cadenas en un solo campo de la tabla de la base de datos. Digamos que es un identificador de objeto que no tiene ninguna representación ni datos en la base de datos. El rango de esos identificadores será relativamente pequeño en producción.
Por otro lado, mis intuiciones y el "buen gusto de diseño" me dicen que debería representarse en una tabla separada (similar a una tabla utilizada para representar relaciones de muchos a muchos).
¿Su enfoque es realmente malo y sería mejor comenzar una refactorización? En caso afirmativo, ¿qué malas consecuencias puede causar el diseño original en el futuro? ¿Hay algún principio de diseño relacional que explique ese enfoque?
Editar a la respuesta para comentarios:
Como supongo, no utilizaron este enfoque para resolver un problema específico como la estructura jerárquica de una manera complicada. El escenario más probable era el caso de que simplemente estaban trabajando bajo la presión del tiempo y necesitaban implementar nuevas características lo más rápido posible.
Estoy seguro de que anteriormente el campo representaba un valor único. Iban a implementar la función para almacenar más de un valor y trataron de evitar las migraciones de la base de datos.