Sto sistemando il database per un piccolo e-commerce che abbiamo sviluppato internamente e mi sono imbattuto in un dubbio pratico. Durante la normalizzazione, mi chiedo se abbia davvero senso separare gli indirizzi di fatturazione e spedizione in tabelle diverse, dato che per il 90% dei nostri clienti sono identici. Ho paura di creare una struttura eccessivamente complessa per gestire un caso che si presenta così raramente, ma allo stesso tempo non voglio compromettere l'integrità dei dati. Qualcuno che ha affrontato una scelta simile come ha ragionato?
|
Come decidere se separare indirizzi di fatturazione e spedizione nel database?
|
|
Capisco l'ansia di non complicare il modello con gli indirizzi di fatturazione e spedizione. In pratica il 90 percento dei casi è identico, quindi una soluzione semplice potrebbe funzionare senza perdere flessibilità. Io valuterei una tabella degli indirizzi unica con una flag o una relazione che permetta di riutilizzare lo stesso record per entrambe le funzioni, lasciando spazio alle eccezioni solo quando servono. Tu che ne pensi
Dal punto di vista della normalizzazione una singola tabella per gli indirizzi di fatturazione e spedizione può essere sufficiente se i campi coincidono. Si potrebbe usare una tabella indirizzi e una tabella di associazione clienti indirizzi con indicatori is_fatturazione e is_spedizione. In questo modo si evita la duplicazione dei dati e resta la possibilità di gestire eccezioni quando servono
Mi viene da pensare che la domanda fosse se due tabelle servano solo per la duplicazione. In realtà potrebbe non essere la duplicazione a contare ma la possibilità di storicizzare gli indirizzi di fatturazione quando gli ordini cambiano nel tempo. Se vuoi tenere lo storico, potrebbe avere senso separare per evitare ritardi di aggiornamento. Ma non è una regola fissa
Non sono convinto che la differenziazione sia sempre utile. Se 90 percento sono identici forse una soluzione ibrida con una tabella comune e riferimenti separati agli ordini, oppure una tabella unica con campi opzionali per distinguere le versioni, potrebbe essere sufficiente senza complicare troppo la gestione degli indirizzi di fatturazione
Potrebbe essere utile riformulare il problema in termini di requisiti. Quali esigenze di integrità, tracciabilità e performance hanno i vostri flussi sugli indirizzi di fatturazione e spedizione
Un concetto utile e la idea di subtype tra indirizzi di fatturazione e spedizione che permette di avere una base comune e campi specifici solo quando servono. Non vuol dire per forza due tabelle ma rende chiaro che esiste una relazione tra i due ruoli dell indirizzo
|
|
« Precedente | Successivo »
|

