2017-05-16 13 views
0

Googleのデータモデルにはユーザーが含まれています。 Googleでは、支払いを処理するために外部API(Zと呼ぶ)を使用しています。 Zでユーザーを作成し、内部IDをZ IDにリンクするマッピングテーブルを作成します。これは "環境"間に1対1の関連がある場合にうまく動作します。外部APIへのマッピングテーブルの処理

問題は、Zが "ステージング"という1つのテスト環境を提供していることです。しかし、私たちは複数の環境、「サンドボックス」、「ステージング」、各devのローカルなどを持っています。理想的には、さまざまな環境をZのステージングにポイントできますが、マッピングテーブルは各環境で間違っています。それぞれの環境は異なるユーザーベースを持ち、電子メールが衝突して誤ったZ IDを指している可能性があります。 Zは(またはアーカイブ)機能を削除しません。

どのようにこれらのマッピングテーブルを管理できますか?

+0

環境間で異なるアプリケーション/環境プロパティとしてマッピングできますか? –

答えて

1

これは一般的な問題です。外部システムを扱うときだけでなく、非常にしばしば内部システムを扱うときにも起こります。

本当に2つの選択肢があります。ステージング環境以外の外部システムとの接触を禁止するか、複数の環境からの外部システムとの接触を許可します。

後者を実行したいので、各環境のマッピングテーブルがID用のIDと外部のステージング環境と一致しないことを承諾する必要があります。これは、外部環境と同じマッピングテーブル内のIDの数がまったく同じであるという要件がある場合を除いて、問題ではありません。これが当てはまる場合は、オプション1が付いています。

おそらく、外部環境のすべてのIDが同じマッピングテーブルに対応するエントリを持つ必要はありません。この場合、実際にはマッピングテーブルのすべてのIDが外部のステージング環境に対応するIDを持つことのみが懸念されます。

マッピングテーブルにIDを作成する前に、外部システムでIDを作成して衝突を防ぐことができます。 IDがすでに取得されている場合は、別のIDを選択する必要があります。