Diverse risposte a una domanda sullo schema del database , hanno suggerito una tabella aggiuntiva per normalizzare un database per una funzionalità che non fa parte dei requisiti attuali (una tabella Reparto utente per consentire una relazione molti-a-molti tra dipendenti / utenti e dipartimenti diversi che potrebbero appartiene a.).
Non contro la normalizzazione. Sembra che quando si tratta di progettare un database, c'è una forte spinta a includere funzionalità che sono "sicure" che qualcuno vorrà in futuro. È così difficile aggiungere tabelle / campi al database per soddisfare le caratteristiche che si tende a progettare troppo? Non sarebbero rifattorizzati o aggiornati proprio come il resto dell'app se necessario? Rifare le cose non è mai divertente, ma è possibile spostare i dati da una tabella a una nuova. Non sono sicuro di dove finirà questa linea di pensiero.
Modifica: c'è così tanta avversione a questo, mi chiedo quanti progetti finiscono per non aggiungere una funzionalità che richiede una drastica modifica del database o sono approcci non normalizzati adottati come l'aggiunta di un campo DepartmentID2 invece di una nuova tabella. La necessità di più reparti per un dipendente è un problema di dominio comune. Non ho notato molti schemi di database disseminati di relazioni molti-a-molti.