powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проблема сущности клиент и договор?
16 сообщений из 41, страница 2 из 2
Проблема сущности клиент и договор?
    #35893077
Kirill Razuvaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> Не... Ну это - понятно... Только, вот, если один сервак вообще на все и
>> вся и юзверов порядочно - то, если честно, сомнение гложет...
Покой нам только снится... (c)
Насколько я понимаю, between тоже не самая легкая операция.
"Все фигня кроме пчел, пчелы тоже фигня - но их МНОГО! " (с) :-)


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Проблема сущности клиент и договор?
    #35893206
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Че-то не выходит каменный цветок
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
create table ContragentMasterWGenIdDate
(
    Id numeric( 18 , 0 ),
    GenId numeric( 18 , 0 )
)

create table ContragentDetailWGenIdDate
(
    GenId numeric( 18 , 0 ) identity,
    Name varchar( 1024 ),
    RecordModify datetime
)
IdGenId111233
GenIdNameRecordModify1'Ленин Владимир Илич''20090320'2'Ленин Владимир Ильич''20090321'3'Сталин Иосиф Виссарионович''20090326'
Пытаюсь даже просто получить актуальные версии
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
select
   CM.Id,
   max(CM.GenId) as GenId,
from
   ContragentMasterWGenIdDate CM
group by
   CM.Id
order by
   CM.Id
А как теперь c'join'ить с ContragentDetailWGenIdDate?
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Проблема сущности клиент и договор?
    #35893327
Kirill Razuvaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я несколько другое имел ввиду:
Код: plaintext
1.
2.
3.
4.
create table Contragents ( GenID integer not null,
 ID integer not null,
 Name varchar( 30 ) not null,
 Dated date not null,
 primary key (GenID));
Вставляем три строки:
1; 384; ООО "Орион"; 26-jan-2009
2; 385; ООО "Мастер"; 16-feb-2009
1; 387; ООО "Орион+"; 05-mar-2009
Дальше, желая получить название контрагента с ID=1 на 27.03.09 выполняем запрос:
Код: plaintext
1.
select C.Name from Contragents C where C.ID= 1  and C.GenID=(
 select max(C1.GenID) from Contragents C1 where C1.ID= 1  and C1.Dated<='05-mar-2009')
При наличии двух уникальных индексов, включающих в себя поля [ID, Dated], и [GenID,ID], получаем быстрое решение.
...
Рейтинг: 0 / 0
Проблема сущности клиент и договор?
    #35893336
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так что-ли
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
select
   CM.Id,
   max(CM.GenId) as GenId,
   CD.Name,
   CD.RecordModify
from
   ContragentMasterWGenIdDate CM
   join ContragentDetailWGenIdDate CD on (CD.GenId=CM.GenId) and (CD.RecordModify<='20090329')
group by
   CM.Id
having
   CD.GenId=max(CM.GenId)
order by
   CM.Id
???
И это только получили Contragent.GenId на дату... Сдаецо мне пчелы нам дадут прикурить...
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Проблема сущности клиент и договор?
    #35893358
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kirill Razuvaev
я несколько другое имел ввиду

Просто вместо моих двух ContragentMaster+ContragentDetail одна денормализированная Contragent... В остальном - все понятно... Но, все же, - настораживает...
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Проблема сущности клиент и договор?
    #35893360
Kirill Razuvaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> И это только получили Contragent.GenId на дату...
По сути - да.
>> Сдаецо мне пчелы нам дадут прикурить...
А чем between ближе к антиникотиновой кампании?
Куча join'ов больших таблиц жизни не облегчит


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Проблема сущности клиент и договор?
    #35893387
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kirill Razuvaev
between

Вы, пожалуйста, не подумайте, что я between'овский фундаменталист и с криками between-акбар с пеной у рта до последнего защищаю его. По большому счету - мне просто необходимо оптимальное решение. Вне зависимости на чем оно будет зиждеца. Одна голова хорошо, а много - уже некрасиво
Что-то а-ля


BTW, посмотрел я на max(GenId) && <Date - а что получиться, если нуна будет задним числом что-то рихтонуть? GenId - будет увеличиваться, а Date уменьшаться. В этом случае, по идее, все гладко, но все же?..
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Проблема сущности клиент и договор?
    #35893400
Kirill Razuvaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> а что получиться, если нуна будет задним числом что-то рихтонуть? GenId -
>> будет увеличиваться, а Date уменьшаться.
Если Вы это на стадии проектирования понимаете, то выкидывайте сразу GenID.
Джойнить придется по дате и ID контрагента только...
GenID по сути только упрощает запросы и позволяет легче найти последнюю
версию, на касаясь даты.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Проблема сущности клиент и договор?
    #35894004
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ex_SoftСергей Васкецовблокировка правки заюзанного легко делаетсяКак?
Тривиально. Если есть ссылка на модицифицируемую строку в договорах - пнх.
...
Рейтинг: 0 / 0
Проблема сущности клиент и договор?
    #35894012
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kirill RazuvaevНу, полный список всех договоров со всеми (!) join'ами - редкое явление...
или ошибка проектирования :-)
Вообще-то это называется "отчет".
...
Рейтинг: 0 / 0
Проблема сущности клиент и договор?
    #35894064
Kirill Razuvaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> Вообще-то это называется "отчет".
Отчет обычно берется за период, и выводятся в отчет обычно не все данные
сразу. А оба этих обстоятельства сильно снижают нагрузку.
Можно ж и сканы подписей представителей до кучи в отчет вытаскивать!


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Проблема сущности клиент и договор?
    #35894086
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kirill RazuvaevОтчет обычно берется за период
Обычно - плохое слово. Какие надо отчеты - те и делаются. Например, по сотруднику, по региону,..., и какие данные туда выводятся - это зависит от отчета.
...
Рейтинг: 0 / 0
Проблема сущности клиент и договор?
    #35894604
Kirill Razuvaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> Обычно - плохое слово. Какие надо отчеты - те и делаются.
>> Например, по сотруднику, по региону,..., и какие данные туда выводятся -
>> это зависит от отчета.
Так я о том и писал, что мы не выводим АБСОЛЮТНО ВСЕ. Выборка же ограничена
чем-то, либо регионом, либо сотрудником, либо датами.
Согласитесь, в контексте отчета по договорам не очень актуально выводить
такой периодический параметр, как банковские реквизиты, к примеру. Уже имеем
экономию ресурсов.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Проблема сущности клиент и договор?
    #35897133
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kirill RazuvaevСогласитесь, в контексте отчета по договорам не очень актуально выводить
такой периодический параметр
Не очень понимаю, куда Вы клоните. Что надо, то и выводится. Если надо расчетные счета или банки, которые в договорах указаны - значит они будут. Бывает и наоборот же, сама по себе электронная форма "легкая", а в отчетах "логика" "навешана".
...
Рейтинг: 0 / 0
Проблема сущности клиент и договор?
    #35897591
Kirill Razuvaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> Не очень понимаю, куда Вы клоните.
К тому, что зачастую система вообще, и запросы в частности, бывают
искусственно утяжелены избыточными условиями и соединениями, которые дают
ощутимую нагрзуку на сервер. Не так давно изучали одну систему на предмет
экспорта из нее и долго не могли понять, в чем тормоза. В итоге оказалось,
что в экспортирующем запросе, надо признать весьма объемном (18 таблиц), -
три лишних join'а, да еще примерно пятую часть условий в where грохнуть
можно было... При этом один join - с полумилионной таблицей... :-(


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Проблема сущности клиент и договор?
    #35897917
Sgt.Pepper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kirill Razuvaev
Насколько я понимаю, between тоже не самая легкая операция.

(Затягиваясь) Ну, безусловно, ничуть не проще чем +/-
Ex_Soft
Kirill Razuvaev
between

Вы, пожалуйста, не подумайте, что я between'овский фундаменталист и с криками between-акбар с пеной у рта до последнего защищаю его.
(Затягиваясь) Проблема, конечно, непростая. Думаю, что ее надо широко обсуждать. Создать даже не ветку, а просто отдельный форум. Типа «SQL Server», “Oracle”, “Использование between”…
Kirill Razuvaev
>> Обычно - плохое слово. Какие надо отчеты - те и делаются.
>> Например, по сотруднику, по региону,..., и какие данные туда выводятся -
>> это зависит от отчета.
Так я о том и писал, что мы не выводим АБСОЛЮТНО ВСЕ. Выборка же ограничена
чем-то, либо регионом, либо сотрудником, либо датами.
Согласитесь, в контексте отчета по договорам не очень актуально выводить
такой периодический параметр, как банковские реквизиты, к примеру. Уже имеем
экономию ресурсов.

(Затягиваясь) Between-то between-ом, но если вдуматься, проблема с where тоже не совсем тривиальная…
...
Рейтинг: 0 / 0
16 сообщений из 41, страница 2 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проблема сущности клиент и договор?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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