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

Откуда: Иркутск
Сообщений: 112
Доброе время суток.
Подскажите пожалуйста как правильно организовать хранение данных. Должна быть талица с заданием(id задания и его заголовок, например) - эти задания доступны всем пользователям. Теперь появляется возможность пользователю самому создавать задания и эти задания должны быть доступны только ему(то есть теперь ему доступны задания для всех + его задания). Так ли должны выглядеть при этом таблицы: первая таблица должна содержать (task_id и его название), вторая - (user_id и task_id) ? и каким запросом потом выбирать задания для пользователя(общие + только его) и только общие, например?
27 окт 11, 05:30    [11506356]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно организовать хранение данных  [new]
Sekoka
Member

Откуда:
Сообщений: 73
Manonia,

Есть вариант хранить в поле user_id = 0 как общее задание. Тогда уже в запросе в связаных таблицах дописать в WHERE user_id=0.
Или UNION, но надо знать как у тебя отличаются общие задания от необщих
27 окт 11, 05:59    [11506360]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно организовать хранение данных  [new]
Manonia
Member

Откуда: Иркутск
Сообщений: 112
Sekoka, не возникнет в таком случае проблем с внешними ключами? Таблицы я буду связывать по user_id с главной таблицей юзеров, а там нумерация начинается с 1
27 окт 11, 06:06    [11506363]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно организовать хранение данных  [new]
Sekoka
Member

Откуда:
Сообщений: 73
Manonia,

а значения Null могут быть? Еще можно закодировать как user'a под определенным номером, но это не выход
27 окт 11, 07:22    [11506398]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно организовать хранение данных  [new]
Sekoka
Member

Откуда:
Сообщений: 73
Ошибся, NULL не может быть, так как внешний ключ
27 окт 11, 07:35    [11506407]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно организовать хранение данных  [new]
Sekoka
Member

Откуда:
Сообщений: 73
Sekoka,

Значит надо выборку делать всех заданий и критерий ставить WHERE (user_id is NULL) or (user_id = (номер юзера))
27 окт 11, 07:39    [11506410]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно организовать хранение данных  [new]
Manonia
Member

Откуда: Иркутск
Сообщений: 112
Sekoka, так как ставить критерий IS NULL, если не может быть user_id Null ...?
27 окт 11, 08:01    [11506428]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно организовать хранение данных  [new]
Sekoka
Member

Откуда:
Сообщений: 73
Manonia,

SELECT _ZADANIA.task_id, _ZADANIA.NAME, _USER.user_id
FROM _USER RIGHT OUTER JOIN _ZADANIA ON _USER.task_id = _ZADANIA.task_id
WHERE (_USER.user_id = 1) OR (_USER.user_id IS NULL)

Получается что в табличку с юзерами не будут попадать общие задания
27 окт 11, 08:14    [11506451]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно организовать хранение данных  [new]
iljy
Member

Откуда:
Сообщений: 8711
Manonia,

ставьте спокойно, все там может быть. А еще загуглите "Row and Cell Level Security".
27 окт 11, 08:15    [11506456]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно организовать хранение данных  [new]
Manonia
Member

Откуда: Иркутск
Сообщений: 112
Sekoke, iljy, спасибо вам большое, буду пробовать =)
27 окт 11, 09:44    [11506678]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить