powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Дерево. План счетов.
63 сообщений из 63, показаны все 3 страниц
Дерево. План счетов.
    #36337959
Cheprasov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток, хочу получть от вас доброго совета)))

В бухгалтерии есть такое понятие как план счетов. Это некий список, древовидный.
Счета обозначаются цифрами от 0 до 100. Разрешено создавать так называемые подсчета.

Пример:
10 счет
10.1 подсчет 10 ого счета
10.1.1 и т.д.

Есть таблица хозяйственных операций с ссылкой на корреспондирующие счета (2 счета из плана счетов).
Бывает нужно извлечь операции с одним подсчетом, а бывает нужно извлеч операции по счету со свеми вложенными в него счетами.
Вопрос как лучше организовать древовидность плана счетов. Что б максимально просто делать запросы из таблицы операций.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36338175
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheprasovкак лучше организовать древовидность плана счетов.

Как вариант

План счетовКодНомер счетаНазваниеКод старшего счета
Т.о. рекурсивно можно построить дерево счетов.

CheprasovЧто б максимально просто делать запросы из таблицы операций.

Но с рекурсией "простоты" в запросе не получить.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36338222
Cheprasov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я вот именно так и реализовал. Выборка по счету и всем его подсчетам меня в скорости не устраивает. А что если в качестве ключа использовать реальный ключ типа
целочисленное число от 0 до числа с n разрядом.

Что думаете господа? Может кто то уже принимал решение? Что в итоге получилось?
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36338224
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для работы с деревом очень удобно использовать строковые ф-ии, если каждый узел дерева хранит свой полный путь наверх по ID, разделенным каким-нибудь символом. При перемещении узла необходимо пересчитывать этот путь для всех его потомков.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36338230
Cheprasov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
П-Л, При таком методе выигрыш в скорости выборки индексов дочерних обьектов, но рекурсивный способ получения таких данных тоже очень быстр. Основное врямя уходин на выборку операций по счету из таблицы операций. Может для не большого обьема данных это не заметно но у меня
операций 5 милионов а отчеты требуют как минимут две выборки по подобному условию.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36338265
Dmitry6237
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheprasov,

в банковском софте принято использовать просто таблицу, но там есть один ньюанс, счета имеют фиксированную длинну. но в принципе и счета с разной длинной можно также уложить.
работа становиться на порядок легче. так что подумайте об этом
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36338298
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CheprasovЧто в итоге получилось?

Если сделать некий функционал, который будет вычислять это значение и записывать в некое поле плана счетов - можно будет делать запросы аля "такое-то значение содержится в таком-то поле". Такие запросы будут выглядеть более простыми.
Но целостность будет "страдать".
Может кто-то корректировал план счетов но не запускал функционал, который правильно заполнит значения ключевого поля... Если это не критично - можно попробовать сделать так.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36338305
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При хранении полного пути до верха я говорил не о скорости, а об удобстве выборок типа: все узлы до верха от текущего, все дочерние узлы от текущего, все узлы того же родителя от текущего. Все это можно решать рекурсивно, а можно через строковые ф-ии.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36338421
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CheprasovВ бухгалтерии есть такое понятие как план счетов. Это некий список, древовидный.организационно, да, план счетов можно представить в виде дерева, однако, имхо, его программная реализация в виде дерева кроме геморроя, никакого выигрыша не даёт. Как совершенно справедливо заметил Dmitry6237 "в банковском софте принято использовать просто таблицу". Забейте на дерево, зачем оно вам здесь тут?
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36338699
Cheprasov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorychCheprasovВ бухгалтерии есть такое понятие как план счетов. Это некий список, древовидный.организационно, да, план счетов можно представить в виде дерева, однако, имхо, его программная реализация в виде дерева кроме геморроя, никакого выигрыша не даёт. Как совершенно справедливо заметил Dmitry6237 "в банковском софте принято использовать просто таблицу". Забейте на дерево, зачем оно вам здесь тут?

Ну может это в банковском. Но всетаки для ведения качественного управленческого учета удобно план счетов представлять в виде дерева. (если интересно где удобно могу рассказать боле подробно)

Вот такой у меня вариант:
Первичный ключ сделать целочисленным числом с макс кол-вом знаков - 10 (По опыту это более чем достаточно). И дерево будет выглядеть так

1000000000 - счет
1010000000 - под счет
1020000000 - еще подсчет
Получается чтоб выбрать мне операции по 10 счету (включая все подсчета) необходимо будет задать условие типа):

Код: plaintext
Where int(Ключ/ 10000000 )= 10 

Что думаете?
Так какой сделать ключ чтоб запросы выполнялись быстро?
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36338838
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheprasovесли интересно где удобно могу рассказать боле подробнорасскажите, действительно интересно
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36338854
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheprasov
1000000000 - счет
1010000000 - под счет
1020000000 - еще подсчет

При таком подходе не лучше ли полей поболе наделать? Типа

План счетовКодНазваниеСчетСубсчет 1Субсчет 2Субсчет 3...

Думается так и скорость запросов увеличится и не нужно будет возиться с разрядностью цифр...
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36338885
Cheprasov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorychCheprasovесли интересно где удобно могу рассказать боле подробнорасскажите, действительно интересно

Есть например счет коственных расходов у этого счета есть подсчета для распределения расходов по более мелким статьям. Пример: Аренда, свет, хоз инвентарьб и т.д. Когда расходы начислены и разложены по всем субщетам их следует списывать на продукцию, на прибыль, еще куданибудь.
Списывать удобно с самого верхнего уровня счета, чтобы не проделывать операцию списания с каждого подсчета. Ну вот один пример.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36338889
Cheprasov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторПри таком подходе не лучше ли полей поболе наделать? Типа
План счетов
Код
Название
Счет
Субсчет 1
Субсчет 2
Субсчет 3
...

Думается так и скорость запросов увеличится и не нужно будет возиться с разрядностью цифр...

А что тогда будет первичным ключом??
Счет,Субсчет 1,Субсчет 2,Субсчет 3. Тоже не удобно.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36338894
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CheprasovА что тогда будет первичным ключом??

Как вариант абстрактный "код"... ;)
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339056
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CheprasovЯ вот именно так и реализовал. Выборка по счету и всем его подсчетам меня в скорости не устраивает. А что если в качестве ключа использовать реальный ключ типа
целочисленное число от 0 до числа с n разрядом.

Что думаете господа? Может кто то уже принимал решение? Что в итоге получилось?
А, старый знакомый! Моё категорическое приветствие!
Я в своей базе естественных ключей не использую, и никому бы не посоветовал(например,
ежли чего-нибудь надо будет потом поменять - это будет сущим наказанием).
А почему скорость маленькая, ведь это обычное дерево по сути. Например, в одном из моих
проектов надо выбирать все права группы по входящим подгруппам(рекурсивно).
Я использую СТЕ. Первое выражение выбирает все подгруппы, потом по этой выборке строятся
права. Нужные поля проиндексированы, никаких перегрузок вроде нет. Права у меня грузятся
при авторизации, (сохраняются в виде массива строк в таблице пользователя на время пока
пользователь в системе).
Кстати, план счетов - сущность редко изменяемая, поэтому можно создать составной индекс по
(id, parent_id) и упорядочить таблицу по нему. Попробуй, если не пробовал.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339087
Cheprasov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОКТОГЕН, Как зовут тебя? не узнаю тебя в гриме))

Я мысль по поводу составного первичного ключа интересная. Но кажется ускорения выбора операций не будет.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339104
Cheprasov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОКТОГЕН, Права записываются в таблицу временную или в реальную? Получается при каждом запросе нужно читать эту таблицу?
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339108
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕНПрава у меня грузятся
при авторизации, (сохраняются в виде массива строк в таблице пользователя на время пока
пользователь в системе).
т.е., если выясняется, что юзверь - шпион, и ему обрубаются права, то юзверь продолжает шпионить, ибо права закэшированы на клиенте?

Шайтан
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339111
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CheprasovОКТОГЕН, Как зовут тебя? не узнаю тебя в гриме))

Я мысль по поводу составного первичного ключа интересная. Но кажется ускорения выбора операций не будет. Алексей, с тобой работал который.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339123
Cheprasov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОКТОГЕНCheprasovОКТОГЕН, Как зовут тебя? не узнаю тебя в гриме))

Я мысль по поводу составного первичного ключа интересная. Но кажется ускорения выбора операций не будет. Алексей, с тобой работал который.

Я так и подозревал)) Приветствую. Ну что добавишь по моему вопросу?
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339124
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CheprasovОКТОГЕН, Права записываются в таблицу временную или в реальную? Получается при каждом запросе нужно читать эту таблицу? в реальную. Есть стобец с
массивом, по которому потом идёт пересечение. Структуры по которым идёт поиск меняются
относительно редко, поэтому отклик быстрый.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339133
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ШайтанОКТОГЕНПрава у меня грузятся
при авторизации, (сохраняются в виде массива строк в таблице пользователя на время пока
пользователь в системе).
т.е., если выясняется, что юзверь - шпион, и ему обрубаются права, то юзверь продолжает шпионить, ибо права закэшированы на клиенте?

Шайтан
Если пользователю меняют права, то все данные авторизации очищаются, и пользователь
должен перезайти заново, при этом вычислится новый набор прав.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339145
Cheprasov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ШайтанОКТОГЕНПрава у меня грузятся
при авторизации, (сохраняются в виде массива строк в таблице пользователя на время пока
пользователь в системе).
т.е., если выясняется, что юзверь - шпион, и ему обрубаются права, то юзверь продолжает шпионить, ибо права закэшированы на клиенте?

Шайтан

В момент выяснения можно еще насильственно отключить пользователя. или написать процедуру для обновления кэшированных привелегий и прав.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339149
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕНШайтанОКТОГЕНПрава у меня грузятся
при авторизации, (сохраняются в виде массива строк в таблице пользователя на время пока
пользователь в системе).
т.е., если выясняется, что юзверь - шпион, и ему обрубаются права, то юзверь продолжает шпионить, ибо права закэшированы на клиенте?

Шайтан
Если пользователю меняют права, то все данные авторизации очищаются, и пользователь
должен перезайти заново, при этом вычислится новый набор прав.
Права не кэшируются на клиенте, они кэшируются на сервере, залезть он туда не может.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339153
Cheprasov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Давай те не сбиваться истинного направления темы))
Алексей, это все из-за тебя.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339166
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheprasov, а какая СУБД, если не секрет.
Если мне не изменяет склероз, ты смотрел в сторону postgresql, а там есть такой тип как ltree .
Посмотри в его сторону.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339176
Cheprasov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОКТОГЕН, oracle 10g
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339186
Dmitry6237
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CheprasovegorychCheprasovВ бухгалтерии есть такое понятие как план счетов. Это некий список, древовидный.организационно, да, план счетов можно представить в виде дерева, однако, имхо, его программная реализация в виде дерева кроме геморроя, никакого выигрыша не даёт. Как совершенно справедливо заметил Dmitry6237 "в банковском софте принято использовать просто таблицу". Забейте на дерево, зачем оно вам здесь тут?

Ну может это в банковском. Но всетаки для ведения качественного управленческого учета удобно план счетов представлять в виде дерева. (если интересно где удобно могу рассказать боле подробно)

Вот такой у меня вариант:
Первичный ключ сделать целочисленным числом с макс кол-вом знаков - 10 (По опыту это более чем достаточно). И дерево будет выглядеть так

1000000000 - счет
1010000000 - под счет
1020000000 - еще подсчет
Получается чтоб выбрать мне операции по 10 счету (включая все подсчета) необходимо будет задать условие типа):

Код: plaintext
Where int(Ключ/ 10000000 )= 10 

Что думаете?
Так какой сделать ключ чтоб запросы выполнялись быстро?
ну как бэ мое предложение и обсуждаете.
делается таблица.
номер_счета - строка
наименование - строка
номер счета формируется как xxyyzz. xx- счет первого порядка, yy -счет второго порядка и т.п. (сорри за терминологию как в бухгалтерии предприятия называется не помню уже.)
соответственно что бы выбрать все операции по тому же 10 счет условие у нас будет
where номер_счета like('10%')
либо
where left(номер_счета,2)= '10'
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339193
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CheprasovОКТОГЕН, oracle 10g
должен быть аналог и там. Я знаю, что-то подобное есть и в m$sql.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339196
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry6237, а тормозов не будет?
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339235
Dmitry6237
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕН,

ну смотря конечно что делать.
но подобный мехнизм вполне работал при количестве счетов порядка 35 тысяч
и нескольких тысяч проводок в день. при чем и на dbf.
не думаю что у автора темы будет количество счетов большее.
и все таки оракл я думаю пошустрее нежели дбфки работать будет))
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339255
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пример конечно упрощенный:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE TABLE ACCOUNTTABLE( --план счетов
      ID Integer NOT NULL, --первичный ключ
      LEFTBOUND Integer NOT NULL, --левая граница вложения
      RIGHTBOUND Integer NOT NULL, --правая граница вложения
      PARENT Integer,--ссылка на счет непосредственного владельца, для первого уровня NULL (можно не создавать, оно вычисляется)
      CODE Char( 10 ) NOT NULL, --код счета
      NAME Varchar( 50 ) NOT NULL, --наименование счета
      ISGROUP Integer NOT NULL --признак: 0,1 - счет является группой субсчетов или нет (для групп корреспонденции запрещены)
--..прочие  поля-признаки счета
)
правило: если субсчет А11 принадлежит А1, а то принадлежит А, то:
A.LEFTBOUND<A1.LEFTBOUND<A11.LEFTBOUND<=A11.RIGHTBOUND<A1.RIGHTBOUND<A.RIGHTBOUND
то есть диапозон LEFTBOUND ... RIGHTBOUND охватывает вложенные субсчета

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE ACCTRANS( --проводки бухучета
      ID Integer NOT NULL, --первичный ключ
      TRANSDATE DATETIME NOT NULL, --дата/время проводки
      ACCDEBET Integer, --ссылка на счет по дебету
      ACCCREDIT Integer, --ссылка на счет по кредиту
      ACCSUM DECIMAL( 15 , 2 ) NOT NULL, --сумма проводки
--..прочие  поля
)

запрос выводит оборот по дебету счета Х
Код: plaintext
1.
2.
3.
4.
SELECT SUM(ACCSUM)
FROM ACCTRANS
INNER JOIN ACCOUNTTABLE AS A1 ON (ACCTRANS.ACCDEBET=A1.ID)
INNER JOIN ACCOUNTTABLE AS A2 ON (A1.LEFTBOUND BETWEEN A2.LEFTBOUND AND A2.RIGHTBOUND)
WHERE A2.ID=X
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339268
Dmitry6237
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Naf,

а стоит так усложнять? каковы плюсы?
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339269
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а учитывая, что план счетов достаточно редко изменяемая таблица, то можно сделать столь сложный алгоритм ее модификации
С уважением, Naf
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339271
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry6237Naf,
а стоит так усложнять? каковы плюсы?
плюс в легкости получения иерархических данных по субсчетам
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339289
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NafDmitry6237Naf,
а стоит так усложнять? каковы плюсы?
плюс в легкости получения иерархических данных по субсчетам
Вариант вполне рабочий, только стоит помнить , что при обновлении плана счетов нужно менять
соответствующие поля во всей таблице плана.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339294
Dmitry6237
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NafDmitry6237Naf,
а стоит так усложнять? каковы плюсы?
плюс в легкости получения иерархических данных по субсчетам

честно говоря не особо заметно.
таблица получается больше, алгоритм вставки сложнее
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339299
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вы так часто меняете план счетов?
С уважением, Naf
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339302
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕНNafDmitry6237Naf,
а стоит так усложнять? каковы плюсы?
плюс в легкости получения иерархических данных по субсчетам
Вариант вполне рабочий, только стоит помнить , что при обновлении плана счетов нужно менять
соответствующие поля во всей таблице плана.
Как вариант, можно использовать ещё DECIMAL/NUMERIC типы, тогда менять всю таблицу не
придётся, но надо быть осторожным с границей точности.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339306
Cheprasov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Naf, Что то есть интересное в твоих рассуждениях. Но запрос все равно сводится к тому:
1: получить список счетов
2: полученный список счетов обьединить с таблицей проводок.

Ты оригинальным способом получаешь список счетов. Интересно а как ты формируешь правую и левую границу подсчетов, это какой то специальный алгоритм.
А если список редактируется что происходит с границами?

Если получать список рекурсивным обходом это тоже очень быстро, доступ к данным осуществляется через первичный ключ. Повторю большое время уходи на запрос из журнала операций. т.к. журнал операций около 5 млн. Хочу сделать так что бы оперативные отчеты не приходилось долго ждать (менее секунды).

Если делать запрос из журнала операций по индексу : where номер_счет_дебет=индекс_номер_счет, - запрос происходи моментально
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339310
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С запросом, кстати, наврал
С уважением, Naf
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339311
Cheprasov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nafа учитывая, что план счетов достаточно редко изменяемая таблица, то можно сделать столь сложный алгоритм ее модификации
С уважением, Naf

Тут сомнений нет.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339319
Dmitry6237
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheprasov,

сложные алгоритмы ведут к сложным ошибкам, которые потом сложно исправлять
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339331
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CheprasovПовторю большое время уходи на запрос из журнала операций. т.к. журнал операций около 5 млн. Хочу сделать так что бы оперативные отчеты не приходилось долго ждать (менее секунды).
А что мешает сделать таблицу функционалов, которая заполняется при добавлении операций?
А выборки делать не из журналов операций, а из таблицы функционалов.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339334
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При добавлении операций будет уходить чуть больше времени, зато итоговые выборки
будут моментальными.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339343
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется, что строить оперативный учет на бухгалтерском плане счетов дело не очень приятное. Особенно, когда у вас будут не только субсчета, но и аналитика внутри субсчетов (контрагенты, товары, склады и т.д.) Кроме того оперативный учет манипулирует также сущностями, которые не имеют отражения в бухгалтерском учете.
С уважением, Naf
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339368
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот правильный тынц http://www.sql.ru/articles/mssql/01091502TreesInSQL.shtml

Шайтан
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339534
Cheprasov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ладно всем спасибо за участие. Буду сам эксперементировать результаты потом расскажу.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339786
Вчем проблема-то?
Организуй ты этот план счетов как угодно - аналитика-то будет собираться по суррогатному ключу. Тоесть в итоге-то будет всё равно что-то вроде
Код: plaintext
1.
2.
Select opername,sum(opersum),schetname from operations,schets where 
operations.schetid = schet.id and
operations.schetid in (select id from schets тут уж как угодно, всё равно не соизмеримого размера выборка с operations)
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36339981
Cheprasov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОченьСтарыйБухгалтер, Ну вообщем у меня так и есть. Я уже сказал выше что я искал.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36340616
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CheprasovОченьСтарыйБухгалтер, Ну вообщем у меня так и есть. Я уже сказал выше что я искал.
У меня организовано что-то типа OLAP кубов. При добавлении операции есть процедура
добавления в кубы. Операции изменяются редко, но их может быть очень много.
Выборки идут из таблиц срезов куба, они моментальные.
Но при изменении операции "кубы" придётся пересчитывать.
У меня это было 2 раза.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36340832
Cheprasov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОКТОГЕН,
А ты круто продвинулся. Для ускорения отчетов буду пробовать OLAP, ведь объем действительно большой, там же еще и аналитики накладываются, срезы получаются самые разнообразные.
А ты что щас проектируешь?
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36340902
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheprasov, у него mail в профиле открыт, написать не пробовали? Домашних животных еще не обсуждали. Хотя тема такая, что можно.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36340905
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheprasov,база расчётов, поддержка старой версии + допиливание новой.
Недавно закончил базу геометрических объектов с кэшированным поиском,
собираюсь тестить в свободное от работы время.
Ну и осваиваю разные финты в Postgres, в частности, репликацию.
Репликация в Postgres-e - вещь самая жуткая.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36340958
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что? Реально Postgre s ???
под этоим названием развитие прекратилось в середине 90-х ......

Шайтан
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36340994
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шайтан
что? Реально Postgre s ???
под этоим названием развитие прекратилось в середине 90-х ......

Шайтан
Кто в теме, тот поймёт.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36340998
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕНШайтан
что? Реально Postgre s ???
под этоим названием развитие прекратилось в середине 90-х ......

Шайтан
Кто в теме, тот поймёт.исчерпывающе-распальцованный ответ


Шайтан
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36342224
Cheprasov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОКТОГЕН, Что такое база геометрических обьектов. Расскажи что она из себя представляет. Помещения что ли описываешь? Обьемы считаешь?
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36342667
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheprasov, поиск по карте, короче. Ну, например, какие организации находятся в заданном
квадрате и по каким адресам. Кратчайшие пути. Плюс всякие там дополнительные
параметры, абсолютно произвольные. Всего порядка 400-500 тысяч объектов, которые
имеют 50-100 параметров поиска каждый. Ещё существуют цены параметров, по ним
считается ценность объекта, как подходящего под запрос. Предыдущий вариант страдал
чрезмерными тормозами, пришлось ввести массивы в таблицах и провести денормализацию.
Движок использует GIN и GIST индексы. Таблицы небольшие, примерно до 2-3 миллионов
записей.
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36342800
Cheprasov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОКТОГЕН, А прикладное использование какое?
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36342841
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CheprasovОКТОГЕН, А прикладное использование какое?
Коммерческая тайна. :-)
...
Рейтинг: 0 / 0
Дерево. План счетов.
    #36342856
Cheprasov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А я грызу все тот же гранит, что ты тоже погрызть успел.
Внедряем. Менеджеры уже работают.
...
Рейтинг: 0 / 0
63 сообщений из 63, показаны все 3 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Дерево. План счетов.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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