2011-02-03 6 views
0

par exemple i ont la table users, qui ont 3 champs:bases de données de conception

id - login - password 
--------------------- 
1 | john | ***** 
2 | jack | ***** 
3 | jane | ***** 

maintenant je veux que chaque utilisateur peut avoir ses propres paramètres. Alors, ai-je besoin de créer trois tables différentes, comme

user_N_settings:

id | key  | value 
------------------------- 
1 | save_data | True 

ou devrais-je créer une grande table pour tous les utilisateurs au lieu?

users_settings:

id  | key  | value | user_id 
--------------------------------------------- 
1  | save_data | True  |  2 
2  | some_opt | False |  3 

Répondre

3

Une table pour tous les utilisateurs. Une table par utilisateur serait très erronée.

+0

même si j'ai hundreads 'key'-' value 'pour les utilisateurs de mille? – nukl

+2

cru3l, Des centaines de milliers de lignes n'est pas très nombreux. – sqlvogel

+0

@ cru31 oui, surtout si vous avez des milliers d'utilisateurs. –

2

Une table. Si toutes les valeurs de réglage sont du même type, il peut être judicieux de créer une ligne par paramètre. Si les attributs sont tous très différents, créez une colonne par paramètre.

Questions connexes