Quando si costruisce un'applicazione da zero, dovrei iniziare con il modello orientato agli oggetti (OO) o il modello di relazione entità (ER)?
Quando si costruisce un'applicazione da zero, dovrei iniziare con il modello orientato agli oggetti (OO) o il modello di relazione entità (ER)?
Potresti voler provare a osservare il principio di ritardare le decisioni architettoniche il più a lungo possibile. Il pensiero è che ne saprai di più in futuro sul tuo dominio del problema rispetto a quello che fai adesso - quindi, ogni decisione che prendi oggi è sospetta.
Un altro buon principio per accoppiare questo potrebbe essere cercare di tentare prima le parti più rischiose delle tue esigenze - il pensiero è che se fai le parti facili, poi scopri che le parti rischiose ti spingono in una direzione diversa, non ti Devo rifare le parti facili. Risky qui significa cose che non sei sicuro di come dovresti eseguirle.
Considerati questi due, e dato che cerco spesso di approcciare le cose da una prospettiva OO, potresti provare a iniziare con un modello OO delle parti più rischiose della tua applicazione e implementare una quantità minima di codice che può funzionare che soddisfa i requisiti rischiosi. Quindi, inizia ad espandere il tuo modello OO, se necessario, per aggiungere funzionalità di cui avrai bisogno. Per tutto il tempo, è possibile ritardare completamente la decisione sull'utilizzo di SQL o NoSQL o flatfile o archiviazione su cloud o altro ... e alla fine si potrebbe scoprire che non si desidera assolutamente alcuna relazione (ovviando alla necessità di un modello ER).
Il modello ER stabilisce come verranno mantenuti i dati dell'applicazione e il modello OO decide come archiviare gli stessi dati in memoria o mentre l'applicazione è in esecuzione. Pertanto, la progettazione dello schema del database (modello ER) e la progettazione della struttura di classe (modello OO) sono considerazioni progettuali correlate e in genere possono anche essere pensate in modo concorrente. Infatti, se stai utilizzando uno strumento di mappatura degli oggetti relazionale (ORM) , il tuo modello ER e il tuo modello OO può essere uno e lo stesso In altre parole, le tue classi (modello OO) possono essere annotate in modo tale che, da sole, specificano il modello ER.
Prima di progettare, però, assicurati di avere una buona idea dei requisiti effettivi del software, di cosa sarà usato, di come sarà usato e di chi lo utilizzerà. Molti sviluppatori iniziano a pensare alle decisioni di progettazione prima che comprendano appieno le esigenze del prodotto e finiscano con un design non adatto al vero scopo dell'applicazione.
Leggi altre domande sui tag object-oriented database-design