Quindi sto leggendo un libro su Design Patterns (Design Patterns Explained 2nd Edition), e in tutto il libro si dice che "favorisce l'aggregazione sull'ereditarietà".
Sto provando a girare la testa cercando di progettare qualcosa, e mi sento così stupido.
Quindi concettualmente, ho Recruiters
. Ho pensato che questi reclutatori possano essere una classe astratta, perché ho un paio di tipi diversi di reclutatori ... a tempo pieno e a tempo parziale. Il fatto è che voglio che ogni reclutatore abbia riferimenti ad altri reclutatori perché potrebbero lavorare insieme e condividere e combinare le informazioni.
Ciascun Reclutatore avrebbe uno o più% diRegions
da supervisionare, magari condividendolo con altri Reclutatori. Tutta la regione è un aggregato concettuale di SubRegions
. Le sottoregioni definiscono luoghi che ricadono lungo determinati confini geografici. Questi contengono alcune informazioni statistiche numeriche sulle assunzioni per quella Sottoregione nel suo insieme.
Le sottoregioni sono costituite da Recruitments
, che contiene informazioni dettagliate su particolari eventi di reclutamento per una Sottoregione. Contengono anche altre informazioni statistiche che hanno senso essere in reclutamento (perché sono molto specifiche per il reclutamento), ma non sotto Sottoregioni. Ogni volta che vengono aggiornate alcune informazioni del reclutamento, è necessario creare un nuovo record di quella transazione in modo da poter conservare una cronologia di come i numeri si stanno adeguando.
Ora, voglio che tutti questi possano essere archiviati in un database. Sono molto ingenuo quando si tratta di progettare e strutturare i database, specialmente quando si tratta di gestire classi e interfacce astratte che sono nuove per me.
Tutto nel database sarà collegato in qualche modo, tra tabelle diverse. Supponiamo che i Recruiter diventino una tabella e che ci sia una tabella Region, una tabella SubRegion e una tabella Recruitment.
Dove è necessario inserire la logica e come inserirla, in modo tale da poter essere sicuro di poter salvare tutto nel database, accoppiato bene, ma accoppiato nel codice?