Nel mio posto di lavoro attuale c'è un modello comune nella progettazione del database: non usano chiavi esterne ma elencano tutti gli ID corrispondenti in una colonna come questa:
some_table
id name image_ids
1 a 1,2,3
2 b 4,6,7
images
id url
1 ...
2 ...
...
Memorizzano i riferimenti personali allo stesso modo:
some_table
id name some_table_id
1 a 2,3
2 b 1,3
...
Mi incoraggiano a usare questo schema ma non mi sembra giusto. Non progetterei mai un database come quello. Ho alcuni argomenti contrari contro:
- E se un giorno aggiungessi dei dati arbitrari a un riferimento personale? Usando questo modello non sarei in grado di
- Non garantisce l'integrità referenziale. Posso facilmente aggiungere ID inesistenti che porteranno a problemi
- La ricerca di stringhe non è veloce
Devo giustificare le mie lamentele, quindi la mia domanda è: Quali argomentazioni argomentative convincenti riesci a trovare contro questo approccio di progettazione hacky?