powered by simpleCommunicator - 2.0.47     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Бизнес-логика
7 сообщений из 57, страница 3 из 3
Бизнес-логика
    #32122506
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2StarWind
>Я так понял ввести табличку одно поле которой ссылается на юзера, второе на группу, а на третье ссылается таблица безопасности? А Join'ы писать не замучиешься в связках? по мойму это получается тормоз да и путаница при занесении данных. Особенно после того как к твоей базе решат написать второго клиента, причем писать будет не разработчик.

Ты не так понял, я наверное плохо сформулировал. Правда gringo с уже ответил, но я все-же попробую еще более формально.

create table commonKey (
id int not null identity primary key,
......
);

create table "user" (
id int not null primary key
references commonKey(id),
.....
);

create table "group" (
id int not null primary key
references commonKey(id),
.....
);

И если нужно чтоб что-то ссылалось на юзера или группу, то ссылайся на commonKey.

>теоретически да, а практически группы древовидные и каждый пользователь может находится в нескольких группах. Равно как и несколько пользователей могут быть в одной группе. Хотел бы я посмотреть на таблицу (одну) в которой это возможно.

Желания исполняются:

create table hGroups (
"group" int not null
references commonKey(id),
"member" int not null
references commonKey(id),
.....
primary key ("group","member")
);

Вместо ссылки на commonKey в этой таблице можно ставить ссылки на любую таблицу из множества {"user","member"} в зависимости от той же разнесчастной бизнес логики.

В одну таблицу вообще все на свете запихнуть можно, достаточно создать поля всех типов, первичный ключ типа identity и ссылку на себя. Тут это уже обсуждалось. А нужно ли?
...
Рейтинг: 0 / 0
Бизнес-логика
    #32122517
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gringo
как правило у групп и у юзеров свой набор атрибутов, какой-то сопровождающей инфо... так что мы тогда получим что для группы или для юзеров окажется куча ненужных полей

c127
я забыл уточнить что структура без извращений.... а так в принципе и всю БД можно в 1 таблицу запихать, это верно

1024
я думаю достаточно точно объяснили. Хочется лишь добавить, что если в твоем примере есть притиворечие, то это не знаит что оно будет всюду. Давай так же как и у тебя двее группы, разработчик и пользователь. А так же группы по отделам, например есть группа бугалтера. Это те же самые юзеры из группы пользователи...
...
Рейтинг: 0 / 0
Бизнес-логика
    #32122577
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>как правило у групп и у юзеров свой набор атрибутов, какой-то сопровождающей инфо... так что мы тогда получим что для группы или для юзеров окажется куча ненужных полей

Третий раз медленно. Общие поля кладешь в "commonKey" (если они есть, я там многоточие специально поставил) , уникальные для юзера - в "user", уникальные для группы - в "group". Это то же, что gringo предлагал, только вид сбоку. Ссылаешься куда хочешь, ключ у двух таблиц общий. Где тут лишние поля? Это же стандартная техника - приведение к нормальной форме называется, не помню правда к какой.
...
Рейтинг: 0 / 0
Бизнес-логика
    #32122813
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри, дошло )Дерево в одной таблице, а остальное по разным и ссылаются на это самое древо, грубо говоря вынесен первичный ключ в отдельную таблицу, или я опять что-то не понял?
...
Рейтинг: 0 / 0
Бизнес-логика
    #32122967
aag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Jimmy:
а воспользовался готовой библиотекой, которую прикрутил к клиенту.

Я пытался ответить тебе, тоже что сказал eNose - суть в том, каким языком, какими ср-вами обрабатывать, а том что перенос - хотя бы частичный логики на клиента порождает массу проблем с согласованием версий, поддержкой и пр. Расчет для какого-нить отчета, кстати, тоже часть бизнес-логики (хотя, конечно, часто его можно рассматривать как часть интерфейса).
Если у тебя БД с шахматными этюдами и ты прикрутишь библиотечку к КЛИЕНТУ , - а на базе сидит штук 50 шахматистов - это может привести к большому геморрою. С другой стороны, прикрутив ее к серверу - что, конечно, несколько сложнее - ты найдешь золотую середину.
...
Рейтинг: 0 / 0
Бизнес-логика
    #32123285
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Дерево в одной таблице, а остальное по разным и ссылаются на это самое древо, грубо говоря вынесен первичный ключ в отдельную таблицу, или я опять что-то не понял?

Все правильно. Потом можно дерево, можно много ко многим, это уже не важно. Основная идея была - построить общий первичный ключ для нескольких таблиц.
...
Рейтинг: 0 / 0
Бизнес-логика
    #32123294
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с127
Спасибо большое, а то у меня стереотип сложился и об этом я как-то не подумал :)
...
Рейтинг: 0 / 0
7 сообщений из 57, страница 3 из 3
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Бизнес-логика
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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