Die Art und Weise, wie Sie die Frage stellen (und zwei Alternativen vorschlagen), ist, als ob die einzige Sorge darin besteht, dass die Fahrer-ID zum Zeitpunkt der Erstellung des Autos noch gültig ist.
Sie müssen sich jedoch auch Sorgen machen, dass der mit driverId verknüpfte Fahrer nicht gelöscht wird, bevor das Auto entweder gelöscht oder einem anderen Fahrer zugewiesen wurde (und möglicherweise auch, dass der Fahrer keinem anderen Auto zugewiesen ist (dies, wenn die Domäne einen Fahrer nur darauf beschränkt) mit einem Auto verbunden sein)).
Ich schlage vor, dass Sie anstelle der Validierung zuweisen (was die Validierung der Anwesenheit einschließen würde). Sie werden dann Löschungen verbieten, solange sie noch zugewiesen sind, und so den Race-Zustand veralteter Daten während der Erstellung sowie das andere längerfristige Problem schützen. (Beachten Sie, dass die Zuordnung sowohl validiert als auch zugewiesene Markierungen enthält und atomar arbeitet.)
Übrigens stimme ich @PriceJones zu, dass die Verbindung zwischen Auto und Fahrer wahrscheinlich eine Verantwortung ist, die entweder vom Auto oder vom Fahrer getrennt ist. Diese Art der Zuordnung wird mit der Zeit immer komplexer, da es sich um ein Planungsproblem handelt (Fahrer, Autos, Zeitfenster / Fenster, Ersatz usw.). Auch wenn es sich eher um ein Registrierungsproblem handelt, möchte man möglicherweise ein historisches Problem Registrierungen sowie aktuelle Registrierungen. Somit kann es sehr wohl sein eigenes BC direkt verdienen.
Sie können ein Zuordnungsschema (z. B. einen Booleschen Wert oder einen Referenzzähler) innerhalb des BC der zugewiesenen Aggregatentitäten oder innerhalb eines separaten BC bereitstellen, z. B. derjenigen, die für die Zuordnung zwischen Auto und Fahrer verantwortlich ist. Wenn Sie das erstere tun, können Sie (gültige) Löschvorgänge zulassen, die an das Auto oder den Fahrer BC ausgegeben werden. Wenn Sie Letzteres tun, müssen Sie Löschungen aus den Auto- und Fahrer-BCs verhindern und diese stattdessen über den Planer der Auto- und Fahrerassoziation senden.
Sie können auch einige der Zuweisungsverantwortlichkeiten wie folgt auf die BCs aufteilen. Der Auto- und Fahrer-BC stellt jeweils ein "Zuordnungsschema" bereit, das den zugewiesenen Booleschen Wert mit diesem BC validiert und festlegt. Wenn ihr Zuordnungs-Boolescher Wert festgelegt ist, verhindert der BC das Löschen der entsprechenden Entitäten. (Und das System ist so eingerichtet, dass die Auto- und Fahrer-BC nur die Zuweisung und Freigabe von der Auto- / Fahrerassoziationsplanung BC zulässt.)
Das Auto- und Fahrerplanungs-BC verwaltet dann einen Kalender mit Fahrern, die für einige Zeiträume / Zeiträume jetzt und in Zukunft mit dem Auto verbunden sind, und benachrichtigt die anderen BCs über die Freigabe nur bei der letzten Verwendung eines geplanten Autos oder Fahrers.
Als radikalere Lösung können Sie die Auto- und Fahrer-BCs als reine Anhänge-Fabriken für historische Aufzeichnungen behandeln und das Eigentum dem Planer der Auto- / Fahrervereinigung überlassen. Das Auto BC kann ein neues Auto mit allen Details des Autos zusammen mit seiner Fahrgestellnummer generieren. Das Eigentum an dem Auto wird vom Planer der Auto- / Fahrervereinigung übernommen. Selbst wenn eine Auto- / Fahrervereinigung gelöscht und das Auto selbst zerstört wird, sind die Autoaufzeichnungen per Definition im Auto-BC vorhanden, und wir können das Auto-BC verwenden, um historische Daten nachzuschlagen. während Auto- / Fahrerverbände / -eigentümer (Vergangenheit, Gegenwart und möglicherweise zukünftige geplante) von einem anderen BC verwaltet werden.
Driver.deletesollte nicht existieren. Ich habe nie wirklich eine Domain gesehen, in der Aggregate zerstört werden. Wenn Sie ARs in der Nähe halten, können Sie niemals mit Waisenkindern enden.