Dipende da cosa viene utilizzato il database.
In molte applicazioni (app web o no), il database è intimamente legato a quell'applicazione perché funge da archivio permanente per esso. Quindi il database è concettualmente parte dell'applicazione, quindi è progettato insieme (e si presume che nessun altro programma significativamente possa accedere o aggiornare quel database). BTW, la persistenza potrebbe essere ottenuta con altri mezzi oltre a un database, ad es. semplici file di testo, file binari (in particolare file indicizzati alla GDBM ), git (o altri VCS) repository, directory o file tree, partizioni del disco raw, hardware dedicato (es. flash), file system remoti, checkpointing . Per i database progettati per e con una sola applicazione, dovresti preoccuparti del recupero e dell'ampliamento comuni; aggiorna i modelli e progetta lo schema del database (e l'indicizzazione!) con loro in mente.
In alcune situazioni il database è di per sé una risorsa importante e indipendente, ed è progettato a priori per essere utilizzato da diverse diverse applicazioni (e anche da quelle future). Quindi dovrebbe essere progettato in modo indipendente (e molto più attentamente).
In particolare alcune app Web sono solo interfacce Web per database esistenti.
In molti casi (si pensi ad alcuni wiki come esempio), i dati sono più importanti e più preziosi delle applicazioni che li usano. Potresti preoccuparti di come renderlo futuro ed essere in grado di evolvere facilmente (ad esempio utilizzando o definendo formati testuali e versatili, preferibilmente standardizzati e documentati per il backup e il ripristino).
I've realized that the (PROPER) design of a database is no small task...
Leggi anche su NoSQL , database orientati ai documenti , database di valori-chiave , gestione della conoscenza , rappresentazione della conoscenza e ragionamento , ontologie , sistemi esperti , approccio delle regole aziendali , ERP , CMS . Forse considera l'utilizzo di REDIS , MongoDB , ecc.