Wenn ich die ASP.Net-Mitgliedschaft plus eine zusätzliche Tabelle zum Speichern von Benutzerinformationen verwende, sollte ich andere Tabellen mit aspnet_Users oder meiner eigenen Tabelle verknüpfen?

8

Ich verwende die ASP.Net-Mitgliedschaft, um meine Site zu sichern, und habe eine Frage dazu, wie ich zusätzliche Benutzerinformationen speichern kann. Durch das Googlen und Lesen anderer Fragen glaube ich, dass die 3 akzeptierte Ansätze zum Speichern zusätzlicher Daten haben.

  1. Profilrahmen - allgemein als zu einschränkend betrachtet
  2. Custom Profile Provider - ein bisschen größer, als ich gerade versuchen möchte
  3. Verwendung einer anderen Tabelle mit Benutzerinformationen - die Wahl, der ich folge

Ich habe eine neue Tabelle zusätzlich zu den ASP.Net-Mitgliedschaftstabellen namens User_Information erstellt, die über einen 1: 1-Fremdschlüssel für aspnet_Users verfügt. Muss ich beim Erstellen einer neuen Tabelle zum Speichern von Informationen, die mit einem Benutzer verknüpft sind (z. B. Kommentare, Abstimmungen usw.), den Fremdschlüssel so festlegen, dass er auf aspnet_User oder meine Tabelle User_information zeigt?

Danke

    
pnewhook 21.12.2009, 04:52
quelle

3 Antworten

2

Das hängt von der Art Ihrer Abfragen ab.

Der Mitgliedschaftsanbieter bietet Ihnen einfachen Zugriff auf die Benutzer-ID-Spalte aus der Tabelle aspnet_Users. Es wird eine zusätzliche Abfrage benötigt, um die ID von Ihrer Tabelle zu erhalten.

Wenn die meisten Ihrer Abfragen jedoch trotzdem der Tabelle "User_Information" beitreten müssen, spielt dies möglicherweise keine Rolle.

    
RickNZ 21.12.2009, 04:59
quelle
2

Ich benutze den gleichen Weg wie du. Ich habe eine schwache Referenz ohne irgendeine physische Beziehung zwischen diesen beiden Tabellen. Es funktioniert vollkommen in Ordnung für mich. Um Abhängigkeiten zu verwalten, können Sie die Datenbankoperationen in Transaktionen für beide Tabellen einschließen.

Ich empfehle, keinen Fremdschlüssel zu erstellen und mit diesem Design fortzufahren.

    
this. __curious_geek 21.12.2009 05:51
quelle
0

Ich wähle die aspnet_User-Tabelle. Es wird schließlich als "primäre" Tabelle für Benutzerinformationen angesehen, nein?

    
Al W 21.12.2009 04:58
quelle