2010-12-15 7 views
0

Nerddinnerプロジェクトでは、間違って理解できなかった場合、ディナーはユーザー名とユーザーとの関係を持っていることがわかります。私は、夕食は一意の識別子でユーザーと関係することを期待していました。それについて何か間違っていることはありませんか?ユーザーのユーザー名を変更したい場合、手動で関係を更新することを検討する必要があります。一意の識別子としてユーザー名を使用する方がいい理由は何ではないかと尋ねた古い質問を考えてください。Nerddinnerプロジェクトのユーザーとディナーの関係

答えて

2

私は正確なデータベーススキーマを念頭に置いていませんが、わかっている限り、ユーザー管理は、メンバーシップデータベースのASP.NET組み込みメンバーシップ機能によって処理されます。 ASP.NETメンバーシッププロバイダから一意のIDを取得することはできますが、そのIDのタイプはプロバイダーによって異なる可能性があります(たとえば、プロバイダInt32、会員IDのproviderUserKey引数がobjectと宣言されているため、別のプロバイダではGuid)。したがって、特定のメンバーシッププロバイダから自分自身を分離したい場合は、ユーザー名を使用することをお勧めします。ポータブルです。

+0

MVCプロジェクトのほとんどは、プライマリIDとしてユーザー名を使用していますか? – Freshblood

+1

@Freshblood:いいえ。それは個人的な好みの問題です。ユーザにユーザ名を変更する機会を与えたい場合は、その名前をプライマリIDとして使用することは正しい選択ではありません。 –

+0

次の両方が当てはまる場合は、それを行うことが理にかなっています。1)ユーザー情報を別のデータベースに格納するASP.NETメンバーシッププロバイダーを使用している。 2) "コンテンツ"データベースの各ユーザーに情報が添付されていない(つまり、各ユーザーを説明するデータベースにはテーブルがない) 2番目の条件が真でない場合は、そのユーザー情報テーブルにプライマリキーを割り当て、それをキーとして使用することをお勧めします。 –

1

この例では、ユーザー名は一意の識別子です。より自然なキーがある場合、intまたはuniqueidentifier(Guid)をキーとして使用する必要はありません。この例では、ユーザ名はシステム内で一意なので、ユーザレコードの自然なキーです。

0

あなたは正しいですか。ユーザ名は、ユーザをディナー(または私が思い出すように、RSVPs)に結びつける一意の識別子として使用されます。

ユーザー名は既に一意である必要があるため、一意のIDです。数値ではなく、自動生成されたものです。

関連する問題