Структура данных должна быть подчинена нуждам приложения.
Если полей будет много (а их будет в итоге в несколько раз больше чем вы указали) выносите в отдельные таблицы данные, которые запрашиваются не часто.
В базовой таблице пользователя держите только самые часто запрашиваемые поля: логин, пароль, почта (в зависимости от требований приложения). Для дополнительных данных, которые запрашиваются реже (например, - только на странице профиля) - сделайте связанную таблицу, для множественных строк к одному пользователю - строго отдельная связанная таблица: vocabulary_gallery, user_notepad и т.п.
Также для вас может быть актуально вывести в отдельную таблицу, например, user_online список пользователей на сайте, что ускорит операцию вывода и изменения этого параметра при большом количестве полей в таблице user и при большой частоте этой операции.
В конечном счете не все можно заложить на этапе проектирования, тестирование для такого, предположительно, нагруженного проекта все равно потребуется и последующие корректировки в т.ч. на уровне архитектуры уровня данных. (Отредактировано автором: 24 Декабря, 2012 - 09:23:34)
|