Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 архитектура таблиц хранение юзеров  [new]
Che0
Member

Откуда:
Сообщений: 299
Добрый день. И Сразу к дела: Есть 2 фиксированных типа пользователей на сайте + 3ий тип админ. Итого 3 типа пользователей. У всех их есть основные поля (логин, почта, пароль) и так же различающиеся и уникальные для каждого типа.
Как правильно организовать структуру таблиц для хранения пользователей:

Я вижу следующие варианты:
1) 3 разные таблицы userType1, userType2 и тд
2)1 главная таблица с общими полями и 3 дополнительных с уникальными полями для каждого типа пользователя
3)1 главная таблица + таблица UserField,UserFieldValues и тд т.е. все допольнительные поля Юзеров это записи таблицы UserField

Склоняюсь к варианту 2

Задача довольна типична, подскажите если еще варианты и какой наиболее верный в данном случае.
Спасибо
23 июн 14, 19:49    [16208721]     Ответить | Цитировать Сообщить модератору
 Re: архитектура таблиц хранение юзеров  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Che0
... пароль) уникальные для каждого типа ...
О боже.
Что вы такие зашореные?
Кроме таблиц ничего не видите. И процедур кстати тоже.

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

Введите колонку Role (или Type), которая будет определять тип пользователей (3 типа). Таблица одна.

Логин может быть уникальным независимо от роли. Обычно так делают. Это просто UNIQUE ограничение.
Почту зачем уникальна? Если так, то можно её же использовать как логин, так тоже часто делают, а главное удобно.
Если у вас логин может повторятся для разных типов, то тогда скорее появится ситуация когда роль будет необходимо выбирать в интерфейсе вместе с логином и паролем.

Пароль уникальный - это же песец. Вы о чём думаете?!
Error: Данный пароль уже занят пользователем Admin.

Для архитектуры в базе, нужна архитектура в голове.
24 июн 14, 03:55    [16209641]     Ответить | Цитировать Сообщить модератору
 Re: архитектура таблиц хранение юзеров  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Ещё можно хранить в другой файловой группе без разделения в отдельную таблу, нужно лишь указать при создании таблицы TEXTIMAGE_ON в нужной группе.
Но такой способ неудобен, так как указывается только при создании таблицы.

PS: А вообще я не спец по данному вопросу, мало с этим работал.
24 июн 14, 11:30    [16210708]     Ответить | Цитировать Сообщить модератору
 Re: архитектура таблиц хранение юзеров  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Del

Упс, ошибся темой.
24 июн 14, 11:36    [16210755]     Ответить | Цитировать Сообщить модератору
 Re: архитектура таблиц хранение юзеров  [new]
Shakill
Member

Откуда: мск
Сообщений: 1880
Mnior
Che0
... пароль) уникальные для каждого типа ...
О боже.
Что вы такие зашореные?
Кроме таблиц ничего не видите. И процедур кстати тоже.

Пароль уникальный - это же песец. Вы о чём думаете?!


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

2 Che0: обычно так же выбираю вариант 2
24 июн 14, 11:43    [16210790]     Ответить | Цитировать Сообщить модератору
 Re: архитектура таблиц хранение юзеров  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Che0, курите третью нормальную форму до понимания.
24 июн 14, 12:21    [16211082]     Ответить | Цитировать Сообщить модератору
 Re: архитектура таблиц хранение юзеров  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Shakill
это вы зря на ТС так набросились, он хотел сказать что есть атрибуты общие для трех типов пользователей
Согласен, туплю дико.

Да, вариант 2. Базовая табла и расширительные, для каждого типа.
24 июн 14, 21:55    [16213999]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить