|
|
|
Как вести классификатор?
|
|||
|---|---|---|---|
|
#18+
Существует необходимость вести справочник разносящий счета по группам например есть табл-классификатор: 12345 Группа1 Статья1 23546 Группа1 Статья2 33546 Группа2 Статья2 и т.д. Ключем является номер счета и все прекрасно пока не начинают появляться новые счета которые получаем из отчета учетной системы (отчет содержит все счета, и старые и новые) Вопрос: как удобнее организовать их добавление и разноску: а) грузим весь отчет в табл-классификатор, на части разнесенных счетов слушаем ругань нарушения уникальности, а новые спокойно добавляются затем делаем SELECT "где неразнесенные" и разносим б) Делаем LEFT JOIN запроса на выборку данных из отчета системы с табл-классификатором - получаем неразнесенные счета добавляем их во временную таблицу, в этой временной разносим затем из нее уже разнесенные добавляем в табл-классификатор минусы: лишняя денормализация (?) - 2 одинаковых по структуре таблицы, лишние джойны этой промежуточной таблицы с таблицей, хранящей названия статей; плюсы: удобство и скорость на >300000 записей Кто как делает подобное, чем одно лучше другого, есть какие мысли по поводу других вариантов? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 13:14 |
|
||
|
Как вести классификатор?
|
|||
|---|---|---|---|
|
#18+
непонятно 1 что ты имеешь ввиду под "затем делаем SELECT "где неразнесенные" и разносим " почему сразу нельзя все разнсить? 2 а по поводу что лучше лишняя структурная единица или скорость - это решается в разных задачах по разному - все зависит от конкретной задачи. обычно лучше выбрать оптимальный по скорости вариант а временную структуру добавлять и после выполнения удалять программно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 13:25 |
|
||
|
Как вести классификатор?
|
|||
|---|---|---|---|
|
#18+
добавляем их во временную таблицу, в этой временной разносим обычно лучше выбрать оптимальный по скорости вариант а временную структуру добавлять и после выполнения удалять программно. Не забывайте, что у пользователя может не быть прав на создание таблиц в базе будь то MDB или SQL Server (ADP). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 13:32 |
|
||
|
Как вести классификатор?
|
|||
|---|---|---|---|
|
#18+
счета из отчета учетной системы идут за период или все с начала года - c начала времен? новые счета по датам всегда старше чем те что уже были закачаны из учетной системы ранее? ин эни кейс ИМХО лучше закачать все во временную талбицу - потом разбираться и удалять излишние. Заодно корректность проверить и наличие исправлений изменений - если актуально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 13:42 |
|
||
|
Как вести классификатор?
|
|||
|---|---|---|---|
|
#18+
> непонятно 1 что ты имеешь ввиду под "затем делаем SELECT "где неразнесенные" и разносим " Когда добавим новые счета в табл-классификатор они не могут быть автоматически сопоставлены группам - их разносит по группам оператор "затем делаем SELECT "где неразнесенные" и разносим " - значит выбираем из этой здоровенной таблы записи, где счета есть, а группы им не присвоены (null) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 13:58 |
|
||
|
Как вести классификатор?
|
|||
|---|---|---|---|
|
#18+
А почему бы сразу не добавить в таблицу, новые (любимый is null), а потом встроенным средством того же аксеса(правая кнопка миши на поле) не поставить фильтр на пустые, по группе а потом и статье или вместе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 16:27 |
|
||
|
Как вести классификатор?
|
|||
|---|---|---|---|
|
#18+
Потому что фильтр это ручная работа а если сделать запрос по is null и навесить на него форму с выводом кучи вспомогательных данных - будет ИНТЕРФЕЙС, УПРОЩАЮЩИЙ РАБОТУ Вопрос же в топике - о плюсах и минусах того/иного способа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 16:40 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32362010&tid=1677470]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
168ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 428ms |

| 0 / 0 |
