Baru-baru ini, saya mulai bekerja pada beberapa sistem warisan. Orang-orang yang mengembangkannya, datang ke ide untuk menyimpan daftar string dalam bidang tunggal dari tabel database. Katakanlah itu adalah pengidentifikasi untuk objek yang tidak memiliki representasi atau data dalam database. Kisaran pengidentifikasi itu akan relatif kecil dalam produksi.
Di sisi lain, intuisi saya dan "selera desain yang bagus" memberi tahu saya bahwa itu harus diwakili dalam tabel terpisah (mirip dengan meja yang digunakan untuk mewakili banyak-ke-banyak hubungan).
Apakah pendekatan mereka benar-benar buruk dan akan lebih baik untuk memulai refactoring? Jika ya, konsekuensi buruk apa yang dapat ditimbulkan oleh desain asli di masa depan? Apakah ada prinsip desain relasional yang menjelaskan pendekatan itu?
Edit untuk menanggapi komentar:
Seperti yang saya duga, mereka tidak menggunakan pendekatan ini untuk menyelesaikan beberapa masalah khusus seperti penataan hierarkis dengan cara yang rumit. Skenario yang paling mungkin adalah mereka hanya bekerja di bawah tekanan waktu dan perlu mengimplementasikan fitur baru secepat mungkin.
Saya yakin bahwa sebelumnya bidang mewakili nilai tunggal. Mereka akan mengimplementasikan fitur untuk menyimpan lebih dari satu nilai dan mencoba menghindari migrasi basis data.