私のチームでは、エンティティ データの更新とその最適なアプローチ方法について議論しています。これはセキュリティ フレームワークであるため、いくつかの制約とアイデアを次に示します。
- DB のすべてのテーブルには、GUID である PK があります。これは、マルチノード クラスタリング ソリューションに必要です。アイデアは、API を介してエンティティでこれを顧客に公開したくないということです。
- 彼らの仕事に必要な情報を提供し、システムに関する情報をハッカーに提供します。
- サポートの悪夢は、クライアントが何らかの方法でこの ID にハードコードし、PK のクライアントを変更する必要がある場合に影響を受けることです。
解決策は、一意の Name を持つ Role オブジェクトや Realm などのアイテムの自然キーを公開することです。一意性を保証しますが、これらの値のいずれかを更新することは困難です。更新する古い値と新しい値を指定するか、2 つを渡す必要があるためです。元のオブジェクトと新しいオブジェクトのオブジェクト。更新するオブジェクトを見つけることができます。ややこしい、
別のアプローチは、代替キーを作成し、これをクライアントに公開して、クライアントが必要なだけ使用できるようにすることです。これは、PK に関連付けられていないため、気にしません。
最近では誰もがエンティティの ID として PK を問題なく使用しているように見えますが、昔のプログラミングの時代からベテランのチームを説得する方法がわかりません。
もう 1 つの問題は、部分的な更新をサポートする方法です。問題は、10 個のプロパティ、4 つのコレクションなどを持つエンティティがあり、名前 + レルムのコンボを使用して、オブジェクト全体をプルダウンする代わりに更新するプロパティを指定し、1 フィールドを変更して送り返すことです。アップデート用。コレクションを遅延ロードすると言いますが、部分的な更新が意味があるかどうかはわかりません。
考え?
ありがとう!