Questa è per lo più una domanda ipotetica, ma è qualcosa che ho gettato attorno e mi sono chiesto che cosa facciano gli altri. Ecco un esempio forzato per illustrare: Diciamo che sto costruendo un'app che consente agli utenti di scegliere alcune parole chiave e quindi mostra loro le foto che sono contrassegnate con tali parole chiave.
Da un lato, ho potuto creare user
, keyword
e photo
tabelle che memorizzano le entità di dati così come esistono. Ciò consentirebbe di modificare facilmente la funzione dell'app senza dover modificare le strutture di dati sottostanti, ma richiede anche diverse query per recuperare i dati necessari per l'app.
Oppure potrei avere una sola tabella user-photos
e in qualche modo inserire tutti i dati in essa contenuti. Ciò renderebbe più semplice l'estrazione dei dati necessari per l'app, ma sarebbe più difficile eseguire qualsiasi altro tipo di query su tali dati. Dopo tutto, un user-photo
non è realmente una cosa - è solo una comoda struttura dati per questo scopo.
Questo potrebbe essere un cattivo esempio, ma la spinta principale della mia domanda è la seguente: se la struttura del tuo database si basa sulle reali entità sottostanti che stanno memorizzando, o puoi usare scorciatoie per rendere più facile l'uso dei dati per il tuo scopi?