Разные типы пользователей, проектирование таблиц, идеи

Статус
В этой теме нельзя размещать новые ответы.

Nelius

кипарис во дворе
Разные типы пользователей, проектирование таблиц, идеи

И снова здрасвтвуйте!) В эфире шоу "Надеюсь я Вам еще не надоел!" :)

Есть проект с регистрацией пользователей. Пользователь может быть различных типов (Тренер, Спортсмен).
После регистрации пользователю автоматически присваивается тип Юзер, но он может подать заявку если он Тренер или Спортсмен чтобы его анкета стала таковой (поимела другой тип).
То есть фактически есть 3 типа пользователей: Тренер, Спортсмен, Юзер обычный (наблюдатель).
У всех этих типов есть общие данные такие как: Имя, Фамилия, Ник, E-mail, Пол, Возраст итд...
У пользователей типа Тренер и Спортсмер есть также дополнительные данные в анкете, например, для Спортсмена: Рост, Вес, и всякие всякие специфичные для конкретного спортсмена показатели. Следовательно имеем что Спортсмены делятся на подтипы: Футболист, Тенисист, Хокеист, Легкоатлет, Шахматист (в общем я не особо силен как их правильно всех называть).

Это так сказать предистория... А задача вот в чем... как хранить эти данные? Раньше была у меня просто таблица Users и вопроса такого не возникало.
В данной ситуации таблица Users тоже будет и я думаю что она должна содержать все данные общие для всех типов пользователей...
А вот как хранить специфичные для различных типов данные? В отдельных таблицах?

Вопрос рассматривается с условием того что эти данные будут часто отображаться пользователям (при просмотре анкет) и не так часто изменяться. Плюс возможно добавление нового типа пользователя в процессе работы сайта.

Может кто уже проектировал подобное? Как лучше сделать? Прошу пинка в правильном направлении.
Спасибо!

P.S.0 Типы = Роли
 

Фанат

oncle terrible
Команда форума
здесь запрешено выкладывать выдуманные задачи.
хочешь чтобы тебе помогли - не высасывай из пальца своих спортсменов, а пиши как есть
 

HraKK

Мудак
Команда форума
поимела другой тип
плачу))
Обыкновенная задача, что тут думать то?
Основные данные хранишь в user, а для дополнительных пишешь таблицу:
user_description
---------------------
id | type | name

group_vs_description
---------------------------
id_group | id_description
 

Nelius

кипарис во дворе
*****
Задача реальная, просто в данном случае проект не мой, разлашать не разрешают, поэтому настоящие типы были заменены, но они (типы спортсмен и тренер) на 100% (даже не на 99) отражают суть. То есть я ничего не выдумывал скорее некорректно написал пост, это да. Исправил.

-~{}~ 01.10.08 15:37:

HraKK
Спасибо!
Хотелось просто чтобы пхп-гуру-человеки потвердили правильность хода моих мыслей... ну или пнули если затупил.
Все тут конечно просто, но не совсем, как быть с типами данных?
Ведь Вес например это integer а другие поля text или еще что...
Может такая структура нужна:

roles_custom_datatypes
---------------------------------
datatype_id | role_id | datatype_name | datatype_type
1 | 1 | Вес | tinyint (1)
2 | 1 | Рост | tinyint (1)

users_trener_data
---------------------------------
data_id | user_id | ves | rost | ...
1 | 1 | 100 | 187 | ...
2 | 1 | 90 | 176 | ...

users_sportsmen_data
---------------------------------
...

Думаю что это не совсем правильная структура... но по этим всем данным должен производиться поиск и сортировка, думается что так будет быстрее всего работать.
Обматерите плиз если чушь сморозил.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху