Domanda

Devo usare uno schema scritto a mano per il mio progetto sviluppato in un linguaggio di alto livello (come Python, Ruby) o devo consentire alla mia soluzione ORM di generarlo automaticamente? Alla fine dovrò migrare senza distruggere tutti i dati. Va bene essere legato a un RDBMS specifico, ma sarebbe bello se in qualche modo fossero supportate funzionalità come vincoli e procedure.

È stato utile?

Soluzione

Non vado mai con lo schema generato da ORM.

Trovo che i modi in cui l'ORM vuole generare lo schema sono spesso in totale contrasto con il modo in cui voglio che il mio database sia strutturato. Inoltre, e so che questo è banale, lo schema della nomenclatura è generalmente scarso.

La struttura del database ha i suoi vincoli, che trovo che di solito gli strumenti di autogenerazione ORM non considerano pienamente. E se vuoi eseguire rapporti sul tuo database in un secondo momento (e lo farai), avere una buona struttura e un design del database è molto importante.

Altri suggerimenti

Vedi questo articolo di Horror di codifica e link per discussione su quella migrazione che alla fine dovrai fare. Pianificalo ora.

Vedi anche Martin Fowler sull'evoluzione del database ; Raccomando in particolare l'idea che la generazione dei dati di test faccia parte della configurazione del database. L'idea potrebbe essere un po 'sottosviluppata, in quanto non vi è una chiara delineazione dei diversi problemi in diversi ambienti, sviluppo rispetto al QA rispetto alla produzione.

Consenti all'ORM di generare lo schema che desidera. Quindi puoi sempre cambiare cose che sono troppo lente o che vuoi diversamente. Ma ti consente di iniziare rapidamente e far funzionare qualcosa, più le persone ORM di solito sanno cosa fanno quando si tratta di generare schemi.

Lascia che la tua soluzione ORM la generi, ma non utilizzarla solo alla cieca; leggere attraverso di essa e controllare la sanità mentale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top