ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

2システムのどちらを先に登録しても連動できるようにするには?

Aシステムに登録したら、Bシステムに登録ができるようにしたく、逆にBシステムに登録したらAシステムにも登録できるようにしたいとう考えがあります。
双方向というのでしょうか。

どちらにも1回だけ登録できるのなら、Aシステムに登録したら、Aシステム登録時に発行したIDとパスワードで認証をして、Bシステムの登録画面を利用できるようにすれば済みます。
Aシステムで発行したIDを、Bシステムで登録する際に保存すれば、AシステムとBシステムは連動できます。

同様に、Bシステムに登録したら、Bシステム登録時に発行したIDとパスワードで認証をして、Aシステムの登録画面を利用できるようにすれば済みます。
Bシステムで発行したIDを、Aシステムで登録する際に保存すれば、AシステムとBシステムは連動できます。

2回目からは、1回目の情報があるので、登録できなくしてしまえば1回だけ登録できるようになります。

f:id:AJYA:20170524234359j:plain
photo credit: William Hook Desktop - 17th June 2008 via photopin (license)

ややこしくなる

Aシステムには1回だけ登録でき、Bシステムには複数回登録できる場合はどうすればいいのでしょう。

Aシステムに登録してからなら、Bシステム側で回数の制限を行わなければ済みます。
Bシステムで登録するたびに、Aシステムで発行したIDを保存するようにすれば、AシステムとBシステムは連動できます。

Bシステムに登録してからになると、難しいです。
Bシステムで複数回登録してから、Aシステムに登録するときは、Bシステムで発行した複数のIDのどれかを保存できますが、保存できるのは1つだけです。
この状態では、完全に連動しているとはいえません。
完全に連動しているといえる状態にするためには、Bシステムに複数回登録したデータを、なんらかの方法でまとめて扱えるようにしなければいけません。

考え方を変えてみる

AシステムとBシステムがある状態にCシステムを加え、Cシステムに登録しないとAシステムとBシステムに登録できないようにするのはどうでしょう。
Cシステムで発行したIDを、AシステムとBシステムで登録する際に保存すれば、CシステムのIDによって、AシステムとBシステムは連動できます。
AシステムとBシステムのどちらを先に登録しても同じことになります。

考え方次第で、ややこしい状況を回避してわかりやすくすっきりした状況にできそうです。