Attualmente sto discutendo di un problema con il mio team di sviluppo. Credono che i campi vuoti siano cattive notizie. Ad esempio, se disponiamo di una tabella dei dettagli del cliente che memorizza i dati per i clienti di paesi diversi e ogni paese ha una configurazione dell'indirizzo leggermente diversa, più 1-2 campi aggiuntivi, ad es. I dettagli dei clienti francesi possono anche memorizzare i dettagli per il codice di accesso e i campi di livello base/livello più (madamme, ecc.). Il Sudafrica avrebbe un numero di sicurezza. E così via.Progettazione database - campi vuoti
Dato che stiamo parlando di piccole differenze, la mia idea è di inserire tutti i campi nella tabella e utilizzare ciò che è necessario su ogni modulo.
Il mio collega ritiene che dovremmo avere una tabella separata con dati aggiuntivi. Per esempio. customer_info_fr. Ma questo giura di sconfiggere completamente lo scopo di un tavolo combinato in primo luogo.
L'argomento è che campi/colonne vuoti sono errati, ma sto cercando di trovare una giustificazione in termini di principi di progettazione del database a favore o contro questo argomento e le soluzioni preferite.
Un'altra opzione è una tabella mini EAV separata che memorizza dati aggiuntivi con parent_id, chiave, campi val. O per serializzare dati extra in una colonna extra_data nella tabella customer_data principale.
Penso di essere confuso perché quello di cui sto discutendo non è coperto da 3NF, che è quello che userei tipicamente come riferimento per come strutturare i dati.
Quindi la mia domanda in particolare: -
Se si dispone di lievi variazioni nei dati per ogni record (1-2 campi diversi per esempio) che cosa è il modo migliore di procedere?
Questa discussione è probabilmente un duplicato. La domanda se i campi NULL sono cattivi è stata chiesta e ha risposto prima. –