|
![]() |
#1 |
Участник
|
Цитата:
Сообщение от AlGol
![]() Может проще будет доработать таблицу с ценами до полноценной реализации модели ValidFrom-ValidTo?
Добавить поле даты окончания срока действия цены ValidTo, заполнять его по умолчанию максимальной датой, а при создании строки с последующей датой заполнять его соответстующим значением окончания срока действия. Тогда запросы по актуальным ценам упростятся до [дата цены]>=ValidFrom AND [дата цены] <= ValidTo. И не максимальную, а какую-то там еще, если удалилась не последняя строка И при изменении ValidFrom, если в результате строка перескакивает через несколько строк назад, тоже исправить ValidTo. Мы уже делали так. Впечатление, что ПРОЩЕ все-таки qbrCena2TransDate.value('((SOPCenaTable.TransDate<SOPCenaTableView.TransDate) && (SOPCenaTableView.TransDate<='+date2StrXpp(_DATE)+'))'); как предложил Wamr Наглядно и точно нет ошибок при пересчете ValidTo |
|
![]() |
#2 |
Участник
|
Есть два связанных между собой процесса
Вы выбрали структуру данных, оптимальную для первого процесса (запись и модификация данных). Но, как Вы видите в данной теме, эта структура создает проблемы при выборке и анализе данных. Однако если модифицировать структуру данных для оптимальной выборки и анализа, то она будет не оптимальна для модификации и хранения. И тут вопрос в том, что для Вас важнее? Что чаще придется делать? Ведь, в конце концов, написать код триггерров на insert/update/delete придется только один раз. Пусть даже он будет достаточно сложным. А вот выборки цен Вы будете делать еще много раз и по разным поводам. И каждый раз Вы будете мучительно долго вспоминать, как же это все "упихать" в один запрос, причем в синтаксисе Axapta.
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|