2

私たちは、ユーザー名がその人の電子メール アドレスであるアカウントを作成するシステムを開発しようとしています。問題は、その人が自分の一意のアカウント (管理者である場合) を持つことができ、さらに他の誰かのアカウントの「ユーザー」になることができることです。

アカウントの「管理者」は、ユーザーの電子メール アドレスをアカウントに割り当て、そのユーザーがユーザーとしてログインするためのパスワードを作成できます。

MySQL では、電子メール アドレスが一意の識別子であるため、ユーザーがログインするアカウントを特定しようとすると問題が発生します。これを行うより良い方法はありますか?

明らかに、個人が割り当てられた各アカウントに一意のユーザー名を使用することでこの問題は解決しますが、ユーザーが覚える必要が少ないため、1 つの電子メール アドレスを使用したいと考えていました。

どんな助けでも大歓迎です!

4

5 に答える 5

6

関心の分離の原則が適用され、2 つの機能 (ログインとアカウントへのアクセス) が分離され、独立した機能となります..
ユーザーはログインします (電子メールとパスワードは、単に彼/彼女が誰であるかを認証します)彼らはそうだと言います)。単一のアカウントに関連付けられていません...個別に、各アカウントにアクセスを許可されているユーザーに関連付けます。(データベースでは、これは多対多のテーブルになります) 次に、ユーザーが管理者であり、複数のアカウントへのアクセス権を持っている場合は、アクセスしたいアカウントを尋ねます。

これにより、監査が必要な場合、監査目的で、ビジネス機能の実行に使用されたアカウントだけでなく、その機能を実行した実際のユーザーを記録できるという利点が追加されました...

于 2010-07-09T18:06:12.623 に答える
0

ログインするアカウントを決定する一般的な方法は、アカウントのサブドメインを持つことです。これは、「企業中心」の Web アプリに特に適しています。

つまり、ユーザーが Company XYZ のアカウントを持っている場合、そのアカウント アドレスは companyxyz.webapp.com である可能性があります。サブドメインは、自動生成されるか、サインアップ時に選択されます。アカウント サブドメインを使用すると、ユーザー ログインは特定のアカウント サブドメイン内で一意である必要があるだけです。

于 2010-07-09T18:08:36.357 に答える
0

同じユーザー (電子メール アドレス) に 2 つのアカウントがある場合は、どちらにログインしたいか尋ねます。

于 2010-07-09T18:02:55.090 に答える
0

ユーザーがどのアカウントにログインしたいかを伝える方法をユーザーに提供する必要があります。たとえば、ログイン フォームの横にドロップダウンを配置して、ユーザーが管理者としてログインするか、ゲストとしてログインするかを選択できます。

そうしないと、ログイン フォームの後に、ユーザーが 2 つのオプションを選択する 2 番目の画面が表示される可能性があります。

いずれにせよ、2 つの別々のユーザー名 (またはパスワード) を使用しないと、ユーザーがどのアカウントにログインしたいかを知ることができません。

于 2010-07-09T18:05:32.713 に答える
0

アカウントの「管理者」は、個人の電子メール アドレスをアカウントに割り当て、その個人がユーザーとしてログインするためのパスワードを作成できます。

この場合、ユーザーをaccount_usersという別のテーブルに移動し、あなたのケースでは主キーIDまたはユーザー名を介してpersonsテーブルに関連付ける方がよいと思います。このようにして、ユーザーのいずれかが既存の管理者であっても、1 人の管理者が多くのユーザーを作成できます。これが最善の方法かどうかわかりませんか?

于 2010-07-09T18:07:39.650 に答える