2009-12-21 12 views
8

Ich benutze ASP.Net-Mitgliedschaft, um meine Website zu sichern, und ich habe eine Frage zum Speichern zusätzlicher Benutzerinformationen. Durch googeln und das Lesen andere Fragen denke ich, die drei akzeptierten Ansätze zur Speicherung zusätzlicher DatenWenn 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?

  1. Profilrahmen - in der Regel als zu betrachten
  2. kundenspezifische Profil-Anbieter zu beschränken - ein wenig größer als ich im Moment versuchen soll,
  3. eine andere Tabelle mit Benutzerinformationen verwenden - die Wahl ich folge

ich eine neue Tabelle neben der ASP.Net Mitgliedschaft Tabellen mit dem Namen User_Information erstellt haben, die eine eins-zu-eins-Fremdschlüssel aspnet_Users hat . 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 einstellen, dass er auf aspnet_User oder meine Tabelle User_information zeigt?

danke

Antwort

2

Es hängt von der Art Ihrer Abfragen ab.

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

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

0

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

2

Ich benutze die gleiche Weise wie Sie getan haben. 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.