Data un'entità padre con una raccolta di entità figlio dove deve esistere esattamente un figlio primario del gruppo?
Per rendere la domanda più concreta, ho visto un certo numero di modi in cui questo schema potrebbe emergere: un gruppo di persone in cui una persona è il leader oi dettagli di contatto di una persona in cui uno è primario. Ecco due diversi approcci che ho visto.
1. Contrassegna il membro come principale In questo approccio, un membro viene aggiunto al membro per designarlo come principale. Il vantaggio è che è semplice da implementare ed evita ulteriori relazioni. Lo svantaggio è che è più difficile applicare nel modello dati che un solo membro è primario e da una prospettiva di un oggetto, potenzialmente pone la responsabilità sul figlio che dovrebbe essere sul genitore.
2. Associazione aggiuntiva In questo approccio il genitore tiene traccia del membro principale del gruppo e memorizza l'id del bambino. Questo è in aggiunta ai bambini che memorizzano l'id del genitore come membro del gruppo. Ciò rende esplicito nel modello di dati che esiste un solo membro primario e che un indice può essere aggiunto per applicarlo. Lo svantaggio è che richiede due relazioni e c'è una possibilità che possano non essere d'accordo (il genitore indica un bambino che non appartiene al genitore).
Mi sembra che questo è un modello comune e deve essere documentato come modello di progettazione o modello di modello in un libro di architettura da qualche parte. Un modello simile potrebbe essere il punto in cui la raccolta è una cronologia e ce n'è una corrente, ma è un po 'più facile in quanto ogni membro avrebbe un intervallo di date che può essere indicizzato. Ci sono approcci migliori? O qualcuno può indicare dove questo modello potrebbe essere documentato in modo più formale?