Sto pensando a un problema di progettazione che riguarda la base dati del mio progetto. Supponiamo che ci siano tre tabelle diverse:
- CLIENT
- ORDINE
- PACKING_SLIP
Ogni ordine ha il suo client e diversi polizze di imballaggio . Quindi ci sono alcune chiavi esterne che sono obbligatorie, ci sarebbe clientId per ORDER
e orderId per la tabella PACKING_SLIP
. Questo ha perfettamente senso.
Orasupponiamonellamialogicachevoglioavereaccessoalclientedallabolladiaccompagnamento.PoichéstoutilizzandounostrumentoORMcomeHibernate,ciòcomportainprimoluogol'accessoall'ordinedalfogliodiaccompagnamentoedopoaverricevutoilclientdaesso.
Sevoglioavereaccessodirettoalclient,dovreiaggiungerelachiaveesternaclientIdancheallatabellaPACKINGSLIP
.
La mia domanda è, è una progettazione corretta se c'è la possibilità di far entrare il client nella tabella ORDER
? Non è un po 'ridondante? Penso che sia un problema di controllo e la parte del database non dovrebbe occuparsene ...