2009-07-25 4 views
0

Cette question est basée sur mon plan au the thread.Pour améliorer un chiffre de relation pour une base de données

La figure suivante montre les relations dans ma base de données

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

J'ai deux "aide-tables": questions-sujets et check-modérateur. J'utilise le premier parce qu'une question peut avoir beaucoup de sujets , tandis que plus tard, parce que plus d'un modérateur peut vérifier une question.

J'ai omis le numéro 1-à-1 sur les flèches.

La flèche en pointillé entre les tables question et modérateur vérifier indique qu'il peut y avoir des questions qui ne vérifient pas les modérateurs.

Ceci est mon premier projet de base de données, donc il y a des erreurs dans les tables.

Que voulez-vous améliorer dans la table? L'utilisateur, UserInfo, le modérateur et le mot de passe sont des tables redondantes qui n'offrent aucun avantage.

Répondre

4

Ils expriment seulement 1-1 les relations avec l'utilisateur, donc il n'y a pas besoin de les normaliser dans des tables séparées:

Faire une table:

  • UserId
  • Nom
  • Email
  • PasswordMd5
  • IsModerator
+0

J'ai besoin de stocker dans un -forme de hachage du mot de passe de l'utilisateur tel que personne ne connote lire. ** Ai-je besoin d'une table pour que je puisse vérifier efficacement que le mot de passe donné par l'utilisateur correspond à celui de la base de données? ** –

+1

Non. Vous faites le hachage dans votre application. – FlySwat

+2

Pour clarifier, vous ne stockez jamais le passage cleartext dans votre base de données. À quoi bon avoir à la fois clair et le hachage dans votre DB? Stockez juste le hachage, puis appliquez votre hachage algo au mot de passe entré puis comparez simplement les hachages. – FlySwat

Questions connexes