Sto lavorando a un'applicazione web con requisiti in costante evoluzione. Le relazioni tra entità nel database sono rimaste per lo più le stesse ma gli attributi di ciascun tipo di entità cambiano molto.
Sto usando Java, JPA e Postgres. Postgres ha un tipo JSON. È un buon progetto per rimuovere tutti gli attributi non chiave e chiave esterna e inserirli in un attributo JSON?
Colonne di FooTable vecchio design
Long id
String foo
Boolean fooCheck
Bar bar /**Foreign key ref*/
Colonne di FooTable Nuovo design
Long id
JSON attributes
Bar bar /** Foreign key ref */
I vantaggi che vedo del nuovo design sono
- Meno conversioni overhead tra POJO e JSON
- Non è necessario modificare lo schema?
- Più veloce per testare nuove cose?
Uno svantaggio che vedo è la migrazione di un JSON scaduto. Ci sono potenziali insidie che mi mancano di questo approccio?