Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура БД / 10 сообщений из 10, страница 1 из 1
28.07.2003, 11:17
    #32219299
kGeo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД
Подскажите структуру для следующей БД: есть роли (roles, их много), есть пользователи (users), каждый из которых обладает ровно одной ролью. Требуется объединять пользователе в группы по следующим правилам:
1. В группу могут входить только пользователи с одинаковыми ролями

2. Пользователь может входить во много групп.

Как эти правила выразить на уровне БД? Можно конечно проверять, посредством триггера соответствие новых пользователей, но IMHO это не красиво.
...
Рейтинг: 0 / 0
28.07.2003, 12:21
    #32219374
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД
Да просто:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
create table role
(
role_id int primary key
)

create table groups
(
groups_id int primary key,
role_id int not null,
FOREIGN KEY (role_id) REFERENCES  role(role_id),
UNIQUE(groups_id,role_id)
)

create table usres
(
usres_id int primary key,
role_id int not null,
FOREIGN KEY (role_id) REFERENCES role(role_id),
UNIQUE(usres_id, role_id)
)

create table usres_group
(
usres_id int not null,
groups_id int not null,
role_id int not null,
primary key (usres_id, groups_id)
)

alter table usres_group add CONSTRAINT usres_group_groups FOREIGN KEY (groups_id, role_id) REFERENCES groups(groups_id, role_id)
ALTER TABLE dbo.usres_group ADD CONSTRAINT usres_group_usres FOREIGN KEY (usres_id, role_id) REFERENCES dbo.usres(usres_id, role_id)
...
Рейтинг: 0 / 0
28.07.2003, 13:12
    #32219431
Jinn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД
2 kGeo

А СУБД какая?
...
Рейтинг: 0 / 0
28.07.2003, 21:11
    #32219989
kGeo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД
А можно выразить указанные правила в структуре БД?

Вопрос скорее теоритический, так что конкретная БД не важна.
...
Рейтинг: 0 / 0
29.07.2003, 01:19
    #32220063
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД
Это отношение многие-ко-многим.
alexeyvg все правильно написал, через промежуточную таблицу usres_group
Это конструкции DDL, которые именно и описывают структуру баз. alexeyvg не вышел за стандарт SQL-92. Эту форму записи ДОЛЖЕН знать любой архитектор.

Предложенная alexeyvg структура будет работать в любой реляционной базе данных
...
Рейтинг: 0 / 0
29.07.2003, 08:18
    #32220125
Jinn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД
В Oracle нет нужды все это городить. Достаточно сделать нужные View's. Вся информация там уже хранится.
...
Рейтинг: 0 / 0
29.07.2003, 10:25
    #32220237
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД
2Jinn
В MSSQL нет нужды городить все эти Oracle-овские View's. Достаточно сделать нужную структуру БД. Вся информация там уже хранится. :-)))
К тому-же это совместимо со стандартами и работает гарантированно быстро.

ЗЫ. А можно привести эти View's?
...
Рейтинг: 0 / 0
29.07.2003, 11:53
    #32220399
Jinn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД
alexeyvg
ЗЫ. А можно привести эти View's?

Представление приводить не буду, а один запросик - пожалуйста:

select u.user# "ID", u.name "User", r.name "Role"
from sys.user$ u, sys.sysauth$ a, sys.user$ r
where a.grantee#=u.user# and a.privilege#>0
and a.privilege#=r.user#
order by u.name

На его основе легко можно сделать любое, из запрошенных, представлений. Достаточно сделать его PUBLIC и все можно просмотреть.
...
Рейтинг: 0 / 0
29.07.2003, 19:48
    #32221517
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД
Jinn. Человек же не про юзеров и роли в базе данных спрашивал. Может быть у него роли - профессиии, а группы - бригады.
...
Рейтинг: 0 / 0
30.07.2003, 10:21
    #32221800
Jinn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД
kGeo
Guest Подскажите структуру для следующей БД: есть роли (roles, их много), есть пользователи (users), каждый из которых обладает ровно одной ролью.

Cat2

Jinn. Человек же не про юзеров и роли в базе данных спрашивал. Может быть у него роли - профессиии, а группы - бригады.

Как видно из цитаты kGeo он использует терминологию СУБД, из этого я и сделал вывод о его проблеме :-)
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура БД / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]