1

私は楽しみのために基本的なソーシャルネットワークを構築しており、ユーザーのメールアドレスに基づいてサイトのコンテンツを分割したいと考えています。すべての機能はサイト全体で同じであり、コンテンツのみが異なります。

たとえば、ユーザーが@ berkeley.eduの電子メールアドレスでサインアップした場合、他の@ berkeley.eduユーザーと友達になったり、コメントしたり、表示したりすることしかできません。また、@ uoregon.eduの電子メールアドレスを持つユーザーは、他の@ uoregon.eduユーザーとのみ友達になり、コメントし、表示することができます。

これを達成するための良いテクニックは何でしょうか?

4

1 に答える 1

1

電子メールドメインからキーオフされたシステムをマルチテナント化することができます。そうすると、すべてのクエリはそのテナントキーから操作されます。

例えば...

テナントテーブル

id、domain(1、'berkeley.edu')

id、domain(2、'uoregon.edu')

ユーザーテーブル

id、tenantId、eメール(1、1、'steve@berkeley.edu')

id、tenantId、eメール(2、1、'fenton@berkeley.edu')

id、tenantId、eメール(3、2、'steve@uoregon.edu')

クエリを実行するときは常に、次のものを含めます。

WHERE tenantId = 1

バークレーのユーザー、コンテンツ、メッセージ、画像などのみを表示します。

于 2012-11-12T20:36:14.290 に答える