2011-02-03 6 views
0

, например у меня есть таблица users, которые имеют 3 поля:базы данных дизайн

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

Теперь я хочу, чтобы каждый пользователь мог иметь свои собственные настройки. Итак, мне нужно, чтобы создать три различных таблиц, как

user_N_settings:

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

или я должен создать один большой стол для всех пользователей, а не?

users_settings:

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

ответ

3

Один стол для всех пользователей. Таблица для пользователя будет очень неправильно.

+0

, даже если у меня есть hundreads 'key' -'value' для тысяч пользователей? – nukl

+2

cru3l, Сотни тысяч строк не так уж много. – sqlvogel

+0

@ cru31 yes, ESPECIALLY, если у вас 1000 пользователей. –

2

Один стол. Если все значения настроек имеют один и тот же тип, тогда может возникнуть смысл создать одну строку для каждой настройки. Если атрибуты все очень разные, то создайте один столбец за настройку.