2009-07-25 6 views
0

Diese Frage basiert auf meinem Plan unter the thread.Um eine Beziehungszahl für eine Datenbank zu verbessern

Die folgende Abbildung zeigt die Beziehungen in meiner Datenbank

alt text http://files.getdropbox.com/u/175564/relation-figure.png

Ich habe zwei "help-Tabellen": Fragen-Themen und Check-Moderator. Ich benutze das erste, weil eine Frage viele Themen haben kann, während der spätere, weil mehr als ein Moderator eine Frage überprüfen kann.

Ich ließ die 1-zu-1-Nummer an den Pfeilen aus.

Der gestrichelte Pfeil zwischen den Tabellen Frage und Moderator überprüft zeigt an, dass es Fragen sein, die Moderatoren nicht überprüfen.

Dies ist mein erstes Datenbank-Projekt, daher gibt es Fehler in den Tabellen.

Was würden Sie in der Tabelle verbessern?

Antwort

4

Benutzer, UserInfo, Moderator und Password sind redundante Tabellen, die keinen Nutzen bieten.

Sie drücken nur 1-1 Beziehungen mit Benutzern, so dass es keine Notwendigkeit, sie in separate Tabellen zu normalisieren:

einen Tisch Hersteller:

  • UserId
  • Namen
  • Email
  • PasswordMd5
  • IsModerator
+0

Ich muss das Kennwort des Benutzers speichern, in einer Hash--Form, so dass niemand connot es lesen. ** Benötige ich eine Tabelle, damit ich effektiv prüfen kann, ob das vom Benutzer angegebene Passwort mit dem in der Datenbank übereinstimmt? ** –

+1

Nein. Sie machen den Hash in Ihrer Anwendung. – FlySwat

+2

Um dies zu verdeutlichen, speichern Sie niemals den Klartext-Pass in Ihrer Datenbank. Was nützt es, sowohl den Hash als auch den Hash in Ihrer DB zu haben? Speichern Sie nur den Hash und wenden Sie dann Ihren Hash-Algorithmus auf das eingegebene Passwort an und vergleichen Sie dann Hashes. – FlySwat

Verwandte Themen