SOA ベースのアプリケーションがあり、アプリケーション間の依存関係はほとんどありません。たとえば、他のアプリケーションで使用されるマスターに市区町村コードがあります。
依存アプリケーションでは、都市レコードの都市コードまたは主キー ID を持っている方がよいでしょうか。都市コードは、ID よりもビジネス データとして送信する方が多いように感じます (これはより結合されているようなものです)。
SOA ベースのアプリケーションがあり、アプリケーション間の依存関係はほとんどありません。たとえば、他のアプリケーションで使用されるマスターに市区町村コードがあります。
依存アプリケーションでは、都市レコードの都市コードまたは主キー ID を持っている方がよいでしょうか。都市コードは、ID よりもビジネス データとして送信する方が多いように感じます (これはより結合されているようなものです)。
主キーは、サービスとデータベースにプライベートな実装の詳細のように感じます。その詳細をサービスのクライアントに公開しません。
しかし、都市コードは、少なくとも候補キーである一意のフィールドのようです。この場合、それを主キーとして使用しないのはなぜですか?
市区町村コードに変更される可能性のあるビジネス ロジックがある場合、代理キーは理にかなっている可能性があります。しかし、そうでない場合は、おそらく検討することができます。
コード (「DUB」など) を使用し、システム全体で共有コントラクトとして使用しますが、これを所有するサービスはありませんか? このようにして、依存関係を切り離し、より読みやすい規則ベースのキーを取得します...
この目的には、ドメイン バリュー マップ (DVM) を使用します。ドメイン値マップは、実行時にインフラストラクチャを通過する実際のデータ値に作用します。特定のドメインで使用されているある語彙から、別のドメインで使用されている別の語彙にマッピングできます。