|
Бизнес-логика
|
|||
---|---|---|---|
#18+
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 и ссылку на себя. Тут это уже обсуждалось. А нужно ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2003, 00:35 |
|
Бизнес-логика
|
|||
---|---|---|---|
#18+
gringo как правило у групп и у юзеров свой набор атрибутов, какой-то сопровождающей инфо... так что мы тогда получим что для группы или для юзеров окажется куча ненужных полей c127 я забыл уточнить что структура без извращений.... а так в принципе и всю БД можно в 1 таблицу запихать, это верно 1024 я думаю достаточно точно объяснили. Хочется лишь добавить, что если в твоем примере есть притиворечие, то это не знаит что оно будет всюду. Давай так же как и у тебя двее группы, разработчик и пользователь. А так же группы по отделам, например есть группа бугалтера. Это те же самые юзеры из группы пользователи... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2003, 03:18 |
|
Бизнес-логика
|
|||
---|---|---|---|
#18+
>как правило у групп и у юзеров свой набор атрибутов, какой-то сопровождающей инфо... так что мы тогда получим что для группы или для юзеров окажется куча ненужных полей Третий раз медленно. Общие поля кладешь в "commonKey" (если они есть, я там многоточие специально поставил) , уникальные для юзера - в "user", уникальные для группы - в "group". Это то же, что gringo предлагал, только вид сбоку. Ссылаешься куда хочешь, ключ у двух таблиц общий. Где тут лишние поля? Это же стандартная техника - приведение к нормальной форме называется, не помню правда к какой. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2003, 09:05 |
|
Бизнес-логика
|
|||
---|---|---|---|
#18+
Сорри, дошло )Дерево в одной таблице, а остальное по разным и ссылаются на это самое древо, грубо говоря вынесен первичный ключ в отдельную таблицу, или я опять что-то не понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2003, 12:26 |
|
Бизнес-логика
|
|||
---|---|---|---|
#18+
2 Jimmy: а воспользовался готовой библиотекой, которую прикрутил к клиенту. Я пытался ответить тебе, тоже что сказал eNose - суть в том, каким языком, какими ср-вами обрабатывать, а том что перенос - хотя бы частичный логики на клиента порождает массу проблем с согласованием версий, поддержкой и пр. Расчет для какого-нить отчета, кстати, тоже часть бизнес-логики (хотя, конечно, часто его можно рассматривать как часть интерфейса). Если у тебя БД с шахматными этюдами и ты прикрутишь библиотечку к КЛИЕНТУ , - а на базе сидит штук 50 шахматистов - это может привести к большому геморрою. С другой стороны, прикрутив ее к серверу - что, конечно, несколько сложнее - ты найдешь золотую середину. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2003, 14:40 |
|
Бизнес-логика
|
|||
---|---|---|---|
#18+
>Дерево в одной таблице, а остальное по разным и ссылаются на это самое древо, грубо говоря вынесен первичный ключ в отдельную таблицу, или я опять что-то не понял? Все правильно. Потом можно дерево, можно много ко многим, это уже не важно. Основная идея была - построить общий первичный ключ для нескольких таблиц. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2003, 00:27 |
|
|
start [/forum/topic.php?fid=32&msg=32122967&tid=1547015]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 17ms |
total: | 158ms |
0 / 0 |