2010-11-28 6 views
4

私の会社では、機能が非常に似ているアプリケーションを多数作成します。たとえば、サイトによってはグループ作成機能があり、他のサイトにはユーザープロファイルページがあり、その他にはユーザーが達成ポイントなどを蓄積できるサイトもあります。集中化されたユーザーデータベースの作成方法

私たちのクライアントは、同じユーザー名/パスワードを使って各アプリケーションにログインできるようにしたいと思っています。ユーザーがサイトごとに異なるアカウントを登録する必要はありません。

データベースを設計するにはどうすればよいですか?すべてのアプリケーションに単一の中央データベースを使用するか、個々のデータベースに分けてデータベース間でJOINを実行する方が良いでしょうか?パフォーマンスに優れ、設計上の方が優れていますか?

ありがとうございました!

+0

詳細をお知らせください。ユーザーベースのサイズ?アプリケーションの数?これらはすべて共通のスタック(PHP/mySqlと思われます)に基づいているのでしょうか、多分、交換、蓮、レガシーアプリケーションを含む多様な技術を追加する必要がありますか? –

答えて

1

私は、そのユーザーのdbにアクセスするためのユーザーdbとWebサービスをホストする中央サーバーを使用します。

このようにして、同じDBを使用し、フロントエンドからそのシステムへのWebサービス経由でログインを実行できます。

これも拡張性があり、アプリケーションによって複雑になる可能性があります。

2

OpenIDを使用してください。 Facebook Connectをプロバイダとして使用するのは簡単です。彼らはあなたのすべてのユーザーのデータ(名前など)にアクセスできるようにして、必要に応じてそれらを識別してデータマイニングすることができます。

外部プロバイダに依存してユーザーアカウントを処理したくない場合は、独自のOpenIDプロバイダになります。

1

私は他の2つの答えをとり、それらを組み合わせてprivate OpenId Providerにします。

このようにして、開発用に標準のOpenIdクライアントを使用できます。開発が必要な場合は、外部のOpenIdプロバイダ用にアプリケーションを開くこともできます。

これは、組織内の他のアプリケーションが同じプロバイダを使用するためのスケーラビリティとオープンスタンダードを提供します。

1

通常の方法では、私はMaster Dataのテーブルを開発しますが、それらは真実アプリケーションの単一バージョンになります。それぞれのアプリケーションはすべて同じ「クライアントベース」にアクセスします。あなたのケースでは、Master Dataという概念をアプリケーションデータベースに適用できるようです。

2

アプリケーションが会社内でホストされている場合は、アクティブなディレクトリを使用できます。 ldap機能を使用してphpからアクティブディレクトリにアクセスできます。アクティブディレクトリ内のグループにユーザーを追加して、アプリケーション内のさまざまな機能にアクセスできるようにすることはできません。

関連する問題