同じユーザーのデータベースが3つあるのはなぜですか?
1つのデータベースが現在ダウンするとどうなりますか?
これらの質問をしているのは、他の2つのデータベースの使用を妨げるユーザーソースデータベースのConが、思ったほど大きな問題ではないかもしれないからです。
さらに、データベースがダウンした場合、その期間中に他の2つのDBでユーザーが変更されると、すでに一貫性の問題が発生します。文脈がなければ最高のアドバイスができるとは思いません。
今は、ユーザー用に4番目のデータベースを作成し、そこでのみ変更を加え、他のデータベース間で同期します。本質的に同じデータを3つの場所で変更することにより、すでに分散非正規化されており、おそらく既に一貫性の問題があります。フォールトトレランスが重要な場合、このスキームは複数エントリの問題を解決する際にそれを提供します。
既存のデータベースを使用するのではなく、この4番目のユーザー/設定のみのデータベースを使用することは、他のリソースに縛られたり、頻繁に使用されたりしないため、ダウンする可能性が低くなるため、良い戦略だと思います。あなたはこれを行うことができないと言ったことがわかりましたが、その理由はわかりません。メインデータベース上のアプリケーションは、ユーザー編集を直接サポートしていますか、それともユーザーが他の場所に向けることができる完全に独立した機能を編集していますか?
確かに、この「正規のユーザーテーブル」のアイデアでは、同義語を使用するかデータを同期するかに関係なく、ユーザーDBのダウン中にユーザーを変更することはできませんが、それは問題ないようです。問題を修正して、それを持ち出してください!ソースが1つ、編集する場所が1つ、破損した場合は修正するものが1つあります。同期により、他のすべてのデータベースには作業可能な一時コピーがありますが、編集はできません。システム間でのデータの重複を最小限に抑えることは、大きな有用な目標です。同じデータを3か所に入力することは深刻な問題です。
ユーザーIDがすべてのアプリケーションで異なる場合、より多くのコメントに対処するには、2つの新しいデータベースの計画的なダウンタイムを真剣に検討して、メインデータベースと同期させる必要があります(アイデアが必要な場合は別の質問をしてください)これを達成する方法については、トリッキーですが、それほど難しいことではありません)。
ビジネスニーズを分析し、メインデータベースに問題のないユーザーデータが必要であることがわかった場合でも、それを正規として使用し、類義語または同期から選択して、計画外のダウンタイムがすべてのデータベースに与える影響に対処します。
シノニムを使用することのもう1つの欠点は、各データベースのユーザーに対して適切なFKを使用できなくなることです。