|
|
|
Вопрос по структуре БД....
|
|||
|---|---|---|---|
|
#18+
Может повторяюсь.... Есть таблица с документами, есть таблица со строками... Нужно для каждого документа хранить суммы по его строкам... Как лучше сделать? 1. При обновлении строк у документа автоматом править суммы в документе.... 2. Не хранить суммы в документе, а при необходимости их динамически рассчитывать.... 3. может быть Ваш вариант?..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 16:07 |
|
||
|
Вопрос по структуре БД....
|
|||
|---|---|---|---|
|
#18+
теория говорит вычислять, хотя иногда практика твердит обратное. надежнее вычислять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 16:53 |
|
||
|
Вопрос по структуре БД....
|
|||
|---|---|---|---|
|
#18+
3. не формируйте отчетность по куче документов, используйте постинг для подготовки необходимых данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 17:00 |
|
||
|
Вопрос по структуре БД....
|
|||
|---|---|---|---|
|
#18+
то есть? что есть постинг? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 17:39 |
|
||
|
Вопрос по структуре БД....
|
|||
|---|---|---|---|
|
#18+
Если данных много, лучше вычислять и хранить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 18:11 |
|
||
|
Вопрос по структуре БД....
|
|||
|---|---|---|---|
|
#18+
TORT3. может быть Ваш вариант?..... На счёт автомата или пулемёта не знаю, а вот триггером автоматически пересчитывать значения большого труда не составляет + создать процедуру для выявления расхождений и ликвидации оных. Триггер позволяет поддерживать БД в непротиворечивом состоянии. Процедура позволяет восстанавливать данные после массовых загрузок или сбоев системы, когда триггеры обычно отключаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 18:19 |
|
||
|
Вопрос по структуре БД....
|
|||
|---|---|---|---|
|
#18+
TORT Нужно для каждого документа хранить суммы ...... Не хранить суммы в документе Как-то нелогично. TORT 3. может быть Ваш вариант?..... Зависит от требований, которые у Вас не указаны. Если "хранить, но вычислять", то materialized view. Но бывают и более интересные ситуации, скажем, если документ был распечатан, то впоследствии нужна возможность распечатать его в точно таком же состоянии, невзирая на все последующие редактирования... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 18:22 |
|
||
|
Вопрос по структуре БД....
|
|||
|---|---|---|---|
|
#18+
Да проблема вот в чем.... Если данные изменились задним числом, допустим изменилась цена в строке... Что же, вешать триггер на каждое изменение строки, искать документ, которому она принадлежит и обновлять его? А если в документе несколько тысяч строк? Вешать триггер на оператор в целом? Так получается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 18:30 |
|
||
|
Вопрос по структуре БД....
|
|||
|---|---|---|---|
|
#18+
TORTДа проблема вот в чем.... Если данные изменились задним числом, допустим изменилась цена в строке... Что же, вешать триггер на каждое изменение строки, искать документ, которому она принадлежит и обновлять его? А если в документе несколько тысяч строк? Вешать триггер на оператор в целом? Так получается? 1. Триггер может запускаться и при изменении определенных полей, влияющих на сумму в заголовке, а не любых полей строки. 2. Я бы делал триггер "on ech row" 3. А чего его "искать". Это, как правило, первичный ключ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 20:04 |
|
||
|
Вопрос по структуре БД....
|
|||
|---|---|---|---|
|
#18+
то есть "for ech row" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 20:09 |
|
||
|
Вопрос по структуре БД....
|
|||
|---|---|---|---|
|
#18+
то есть for each row Меня смущает вопрос производительности.... Если в БД ~100 млн.строк... И порядка 1 млн.документов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2007, 09:45 |
|
||
|
Вопрос по структуре БД....
|
|||
|---|---|---|---|
|
#18+
TORT то есть for each row Меня смущает вопрос производительности.... Если в БД ~100 млн.строк... И порядка 1 млн.документов... И что все 100 млн. строк документов внезапно изменяются? Или вдруг будет изменено 1 млн. строк по одной из каждого документа? С другой строны если одним запросом будет "исправлено" несколько строк относящихся к разным документам (что в принципе возможно), то в триггере включенном в целом на операцию сложно будет проапдейтить соответсвующие "шапки". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2007, 18:38 |
|
||
|
Вопрос по структуре БД....
|
|||
|---|---|---|---|
|
#18+
Если это про первичные документы бух.учета, то мало и того другого вместе, приходится городить структуры DocAmounts - протокол расчёта (1:M) со структурой тип/значение/... DocTTLAmounts - итоговые суммы - WareHouse для документа (1:1) Postings - стандартные проводки (1:M) Пример: в позиции документа хочется хранить 9 сумм (3х3) (Accounting;Currency;National_Currency) х (Price;Tax;Gross) не говоря о наименовании, штрих коде, № п.п, ... Для Счетов Хочется иметь Цену,налог по ставке 1,налог по ставке 2,.....акциз, Итого Возможно также в 3х валютах Так что всё зависит от потребностей, ну а метод заполнения - это от реализации Пользую все ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 02:44 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=34573005&tid=1544461]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
156ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 498ms |

| 0 / 0 |
