3〜4つの相互依存プログラムを開発しています。それらをfoo bar bazとauthと呼びます。お互いに独立してほしいです。各プログラムを他社にライセンス供与する場合を想像してみてください。fooとbarが必要な企業もあれば、bazだけが必要な企業もあります。authを独立しておくことも良い方法のようです。
コンテキスト:authはすべてのシステムの認証を処理します。authのメインのusersテーブルには、user_id、email、password、first、lastがあります
fooには、アプリケーションの特定のフィールド(user_id、role_idなど)を持つusersテーブルもあります。
各システムには独自のデータベースがあります。過去に、各アプリケーションから認証データベースへの外部キーを作成しました。他のデータベースから更新権限を削除しましたが、特定の関連フィールドへの選択アクセスを許可しました。これは緊密な依存関係を作成するため、悪い解決策のように見えますが、ユーザー名と電子メールをfoo、bar、またはbazデータベースに格納する必要がないように、dbを正規化することができました。
すべてのデータベースに情報を保存する方が良いでしょうか?または、認証IDをfoo barとbazに保存し、apiを使用してauthIdを使用してユーザー情報を取得する方が良いでしょうか?
同様に、3つのシステムすべてに顧客がいる可能性があります。確かに、auth dbに依存関係を作成するのは悪いようですが、3つすべての顧客のdbについてはどうですか?
または、1つの中央データベースを作成するのに最適なソリューションです。1つのユーザーテーブル。
他の提案?
foo bar
多くの場合、例は抽象的すぎて、適切な説明にはなりません。