2010-12-15 4 views
0

In Nerddinner Projekt, sehe ich, dass Abendessen hat Bezug auf Benutzer von Benutzernamen, wenn ich es nicht falsch verstanden habe. Ich erwartete, dass Abendessen durch eindeutige Kennungen mit den Benutzern in Beziehung stehen würde. Daran ist nichts falsch? Wenn wir den Benutzernamen des Benutzers ändern möchten, sollten wir die Relationen manuell aktualisieren. Bitte bedenken Sie alte Fragen, die sich fragen, warum es nicht besser ist, den Benutzernamen als eindeutige Kennung zu verwenden.Beziehung zwischen Benutzern und Abendessen in Nerddinner Projekt

Antwort

2

Ich habe nicht das genaue Datenbankschema im Hinterkopf, aber soweit ich weiß, wird die Benutzerverwaltung von den integrierten ASP.NET-Mitgliedschaftsfunktionen in der Mitgliedschaftsdatenbank verwaltet. Während Sie eine eindeutige ID von ASP.NET-Mitgliedschaftsanbietern erhalten können, kann der Typ dieser ID zwischen verschiedenen Anbietern variieren (z. B. Int32 in einem Anbieter und Guid in einem anderen als providerUserKey Argument in der Membership-API vom Typ object). Wenn Sie sich also von einem bestimmten Mitgliedschaftsanbieter isolieren möchten, sollten Sie sich lieber an den Benutzernamen halten. Es ist tragbar.

+0

Die meisten MVC-Projekte verlassen sich auf Benutzername als primäre ID? – Freshblood

+1

@Freshblood: Nein. Es ist eine Frage der persönlichen Präferenz. Wenn Sie einem Benutzer die Möglichkeit geben möchten, seinen Nutzernamen zu ändern, wäre die Verwendung seines Namens als primäre ID nicht die richtige Wahl. –

+0

Dies ist sinnvoll, wenn beide der folgenden Bedingungen zutreffen: 1) Sie verwenden ASP.NET-Mitgliedschaftsanbieter, die Benutzerinformationen in einer separaten Datenbank speichern. 2) Sie haben keine Informationen an jeden Benutzer in Ihrer "contents" -Datenbank angehängt (d. H. Sie haben keine Tabelle in dieser Datenbank, die jeden Benutzer beschreibt). Wenn die zweite Bedingung nicht erfüllt ist, möchten Sie der Benutzerinformationstabelle wahrscheinlich einen Primärschlüssel zuweisen und diesen als Schlüssel verwenden. –

1

Benutzername ist eine eindeutige Kennung in diesem Beispiel. Sie müssen nicht int oder uniqueidentifier (Guid) als Schlüssel verwenden, wenn ein natürlicherer Schlüssel vorhanden ist. In diesem Fall ist der Benutzername innerhalb des Systems eindeutig und ein natürlicher Schlüssel für die Benutzerdatensätze.

0

Sie haben Recht; Die Benutzernamen werden als eindeutiger Bezeichner verwendet, der die Benutzer an Abendessen (oder an die RSVPs, soweit ich mich erinnere) bindet.

Es verwendet diese Werte, weil Benutzernamen bereits eindeutig sein müssen, also ist es eine eindeutige ID ... es ist nur keine numerische, automatisch generierte.

Verwandte Themen