|  | 
| 
Бизнес-логика | |||
|---|---|---|---|
| #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=32123294&tid=1547015]: | 0ms | 
| get settings: | 10ms | 
| get forum list: | 13ms | 
| check forum access: | 3ms | 
| check topic access: | 3ms | 
| track hit: | 46ms | 
| get topic data: | 12ms | 
| get forum data: | 3ms | 
| get page messages: | 49ms | 
| get tp. blocked users: | 1ms | 
| others: | 265ms | 
| total: | 405ms | 

| 0 / 0 | 
