Sto provando a progettare un sistema ERP relativamente semplice. Tuttavia, ci sono alcuni requisiti che complicano un po 'le cose:
- Deve essere possibile aggiungere tutti i tipi di contatti alla tabella persone , inclusi clienti e collaboratori.
- Deve essere possibile assegnare un utente a un contatto, in modo che gli utenti possano accedere ai propri programmi e materiale.
- Deve essere possibile assegnare gli utenti a più clienti, quando ad esempio un utente lavora per più organizzazioni.
- Deve essere possibile per le diverse organizzazioni avere diversi dettagli di contatto per un utente.
- Quando - in futuro - viene aggiunta una funzionalità di gestione del progetto, deve essere possibile condividere progetti tra organizzazioni.
Mi è venuto in mente questo semplice modello di dati:
Comepuoivedere,c'èunacertaduplicazionedeidatitraletabelle.
Dovreisemplicementeeliminareilnomedell'organizzazionedelclienteerecuperarlodalcampodicontattodelcliente?Esì,ilcontattodelclienteèlapersonachericevefattureesimilidanoi.Questaèunabuonadecisionediprogettazioneonondovreiusarelatabellapersoneperquesto?
Ilnomedell'utenteèunaduplicazionedelnomedelcontatto,manonpensochesiaevitabile?Nonvogliolegareidettaglidell'utenteaidettaglidelcontatto,vediilpunto4.
Ancoraunavolta,questoèsolounsemplice"mockup" per visualizzare le cose, ma che tipo di miglioramenti posso apportare a questo modello? C'è un modo più elegante?