|
|
|
Проектирование БУ при хранение данных в ООБД
|
|||
|---|---|---|---|
|
#18+
Возникла задача спроектировать и написать не большую учетную системку. У меня есть довольно большой опыт написания учетных систем где для хранения используется РСУБД. Но поскольку данная система пишется в каком то роде не для денег а для души то возникло желание попробовать что то новое и для хранения данных использовать ООБД. И теперь собственно вопрос, а как под нее спроектировать часть связанную с хранением проводок, остатков по счетам и т.п. Т.е. как все должно выглядить в РСУБД я очень хорошо представляю а вот как спроектировать от классов не очень. Может кто нибудь подскажит как для ООБД может выглядить диограмма классов для работы с БУ. Пока видится подход нарисовать все в таблицах, а таблицы считать классами, но как то мне такой подход не очень нравится... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 13:43 |
|
||
|
Проектирование БУ при хранение данных в ООБД
|
|||
|---|---|---|---|
|
#18+
ln123 Пока видится подход нарисовать все в таблицах, а таблицы считать классами, но как то мне такой подход не очень нравится... Запустите ОРМ и что-то похожее получите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 14:03 |
|
||
|
Проектирование БУ при хранение данных в ООБД
|
|||
|---|---|---|---|
|
#18+
Про ОРМ я знаю тут задача несоклько обратная т.е. я знаю как спроектировать в виде таблиц но не знаю как спроектировать с помощью классов причем так что бы задействовать те вкусности ООБД о которых тут в некоторых топиках рассуждали, к тому мне не нужно ОРМ т.к. база которую я собираюсь использовать изначально объектоно ореентированная и если я могу проектировать в терминах РСУБД то в терминах ООБД как то пока не очень получается :(. Как только начинаю думать о классах - объектах тут же задумаваюсь о хранение в таблицах и производительности в результате затык и дело не движется... Интересно не ужели ни кто из стронников Cache не разу не проектировал бухгалтерию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 15:39 |
|
||
|
Проектирование БУ при хранение данных в ООБД
|
|||
|---|---|---|---|
|
#18+
Очень интересная задача -- объектно-ориентированная бухгалтерия. Я тоже над ним думаю уже какое-то время. Интересно, может, уже существуют какие-то библиотеки или что-нибудь такое же, для представления бухгалтерии в виде классов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 09:11 |
|
||
|
Проектирование БУ при хранение данных в ООБД
|
|||
|---|---|---|---|
|
#18+
ln123Пока видится подход нарисовать все в таблицах, а таблицы считать классами, но как то мне такой подход не очень нравится... Начни с этого... Потом можно прикинуть, что от кого будет наследоваться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 15:21 |
|
||
|
Проектирование БУ при хранение данных в ООБД
|
|||
|---|---|---|---|
|
#18+
Как я уже писал я думал в этом направление. Вопрос не в наследование (по моему мнению возможно наследование вновь создаваемых счетов от базового счета, классов субсчетов от класса счета и на этом наверное игры с наследованием заканчиваются). Более интересен вопрос структуры классов т.е. какой класс какой содержит, использует, агрирует. Например нужен ли отдельный класс под проводку (полупроводку) если нужен то должен ли он быть доступен из вне или только через некие методы классов документы или счетов ну и тому подобные вопросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 17:32 |
|
||
|
Проектирование БУ при хранение данных в ООБД
|
|||
|---|---|---|---|
|
#18+
ln123Про ОРМ я знаю тут задача несоклько обратная т.е. я знаю как спроектировать в виде таблиц но не знаю как спроектировать с помощью классов причем так что бы задействовать те вкусности ООБД о которых тут в некоторых топиках рассуждали, к тому мне не нужно ОРМ т.к. база которую я собираюсь использовать изначально объектоно ореентированная и если я могу проектировать в терминах РСУБД то в терминах ООБД как то пока не очень получается :(. Как только начинаю думать о классах - объектах тут же задумаваюсь о хранение в таблицах и производительности в результате затык и дело не движется... Интересно не ужели ни кто из стронников Cache не разу не проектировал бухгалтерию? Полноприводная бухгалтерия на CACHE (MSM) Выполняет те же задачи что и "1с" 200 штук работают в разных отраслях c 2005-2007 г Обьектный подход выражен слабо - но развивается - как наиболее перспективный для этого проекта. Обьектная модель - не от CACHE mx@enters.eu ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 20:50 |
|
||
|
Проектирование БУ при хранение данных в ООБД
|
|||
|---|---|---|---|
|
#18+
А не могли бы вы расказать об используемых вами проектных решениях по подробнее? Храните ли остатки по счетам отдельно или расчитываете на основе проводок? Храните ли информацию о проводках как то отдельно или внутри других объектов (структур данных)? Если вобще такое понятие как проводка в виде структры хранения? Я для своего проекта буду использовать ООБД отличную от Cache так что интересует не тех. подробности а скорее логика. Я так понимаю MSM это сетевая структура данных и мне да и другим участнимам форума наверное было бы интересно как решаются задачи БУ с точки срения парадигм отличных от реляционной... Возможно вы встреча ли информацию о проектирование на основе сетевой (иерархической, объектной) модели в интернете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2008, 11:42 |
|
||
|
Проектирование БУ при хранение данных в ООБД
|
|||
|---|---|---|---|
|
#18+
Не могли бы участники топика все же назвать используемые ими ООБД? (Естественно, если это не Cache) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2008, 15:54 |
|
||
|
Проектирование БУ при хранение данных в ООБД
|
|||
|---|---|---|---|
|
#18+
ln123 А не могли бы вы расказать об используемых вами проектных решениях по подробнее? (1)Храните ли остатки по счетам отдельно или расчитываете на основе проводок? (2)Храните ли информацию о проводках как то отдельно или внутри других объектов (структур данных)? (3)Если вобще такое понятие как проводка в виде структры хранения? 1- год закрыт - остатки на конец года по счетам-субсчетам фиксируются 2- в течениии года ни проводки ни остатки не храним - скорость CACHE позволяет этим не заморачиваться 3- нет - проводка возникает только в момент расчета - пересчета и потом исчезает длина счетов на проводках неограничена (используется Датская система 9999.zzzz.zzz.zzz....zzzzzz.zzz.zzzz обозначения счета ) все проводки - автоматические на 100 % (кроме ввода начального сальдо на момент запуска системы) ================= ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2008, 16:04 |
|
||
|
Проектирование БУ при хранение данных в ООБД
|
|||
|---|---|---|---|
|
#18+
MX -- ALEX 2- в течениии года ни проводки ни остатки не храним - скорость CACHE позволяет этим не заморачиваться 3- нет - проводка возникает только в момент расчета - пересчета и потом исчезает длина счетов на проводках неограничена (используется Датская система 9999.zzzz.zzz.zzz....zzzzzz.zzz.zzzz обозначения счета ) О как интересно. В каком-то из топиков данного форума некто ЧАЛ я так понимаю рьяный стороник сетевых систем косвенно упоминал о похожем подходе, мне было очень интересно, но к сожалению из него трудно что либо добиться конкретного. 1. Я правильно понимаю что есть первичные документы (и возможно еще какие либо структуры) по которым в случае необходимости на лету расчитываются проводки? 2. Каким образом осуществляется внесение изменений в документы задним числом? Т.е. бухгалтер выясняет что в документе отраженном при сдаче отчетности за прошлый месяц есть ошибка таким образом ему необходимо отсторнировать этот документ и провести исправленный документ причем это все делается текущим месяцем проводки за месяц сданной отчетности не должны изменться. Как вы этого достигаете? Я вижу два пути учитывать при генерации проводок версионность документа либо создание корректирующих документов связаных с исходным может есть еще способ? 3. Как выполняется расчет закрытия производственных счетов и расчет себестоимости? Данный вопрос вызван тем что на мой взгляд такие вещи на лету генерить не реально (эта процедура чисто расчетно распределительная и первичных документов на основе которых можно сгенерить проводки на лету нет)... т.е должны существовать какие то механизмы для хранения. Наример если у вас бухгалтер хочет увидеть все проводки за какой то старый месяц в корреспонденции Д 20 - К 25 в разрезе какой либо аналтитики то на основании чего у вас будет генерироваться отчет? 4. Если вам не сложно не могли бы вы привести пример кода отчета для моего 3-го вопроса или для например более простого отчета когда бухгалтер пытается получить проводки в кореспонденции Д 10.01 - К 60 по конкретному материалу за месяц. Если логика кода из вопроса 3 мне не понятна совсем, то здесь у меня есть определенные мысли как такое можно строить просто хотелось проверить свои идеи... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2008, 18:20 |
|
||
|
Проектирование БУ при хранение данных в ООБД
|
|||
|---|---|---|---|
|
#18+
ln123 MX -- ALEX 2- в течениии года ни проводки ни остатки не храним - скорость CACHE позволяет этим не заморачиваться 3- нет - проводка возникает только в момент расчета - пересчета и потом исчезает длина счетов на проводках неограничена (используется Датская система 9999.zzzz.zzz.zzz....zzzzzz.zzz.zzzz обозначения счета ) О как интересно. В каком-то из топиков данного форума некто ЧАЛ я так понимаю рьяный стороник сетевых систем косвенно упоминал о похожем подходе, мне было очень интересно, но к сожалению из него трудно что либо добиться конкретного. 1. Я правильно понимаю что есть первичные документы (и возможно еще какие либо структуры) по которым в случае необходимости на лету расчитываются проводки? 2. Каким образом осуществляется внесение изменений в документы задним числом? Т.е. бухгалтер выясняет что в документе отраженном при сдаче отчетности за прошлый месяц есть ошибка таким образом ему необходимо отсторнировать этот документ и провести исправленный документ причем это все делается текущим месяцем проводки за месяц сданной отчетности не должны изменться. Как вы этого достигаете? Я вижу два пути учитывать при генерации проводок версионность документа либо создание корректирующих документов связаных с исходным может есть еще способ? 3. Как выполняется расчет закрытия производственных счетов и расчет себестоимости? Данный вопрос вызван тем что на мой взгляд такие вещи на лету генерить не реально (эта процедура чисто расчетно распределительная и первичных документов на основе которых можно сгенерить проводки на лету нет)... т.е должны существовать какие то механизмы для хранения. Наример если у вас бухгалтер хочет увидеть все проводки за какой то старый месяц в корреспонденции Д 20 - К 25 в разрезе какой либо аналтитики то на основании чего у вас будет генерироваться отчет? 4. Если вам не сложно не могли бы вы привести пример кода отчета для моего 3-го вопроса или для например более простого отчета когда бухгалтер пытается получить проводки в кореспонденции Д 10.01 - К 60 по конкретному материалу за месяц. Если логика кода из вопроса 3 мне не понятна совсем, то здесь у меня есть определенные мысли как такое можно строить просто хотелось проверить свои идеи... 1,2 -- каждый первичный документ рассматривается как обьект, своиства доступны после открытия , метод "проводки" возвращает заполненую таблицу проводок, версионность обеспечивает возможность сторнирования 3 -- хранения проводок нет - но по запросу возвращает любую нужную таблицу проводок - в том числе и за прошлые годы (все документы хранятся в базе ) ,эта таблица участвует в расчетах себестоимости (но не хранится), делается одним комбинированным запросом из ячеек EXCEL 4 -- пример кода отчета по себестоимости- прилагается там же пример первичного документа-обьекта на экране оператора ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2008, 20:33 |
|
||
|
Проектирование БУ при хранение данных в ООБД
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2008, 20:35 |
|
||
|
Проектирование БУ при хранение данных в ООБД
|
|||
|---|---|---|---|
|
#18+
MX -- ALEX пришлось делить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2008, 20:39 |
|
||
|
Проектирование БУ при хранение данных в ООБД
|
|||
|---|---|---|---|
|
#18+
Спасибо большое за ответы и за примеры, правда в примерах без бутылки не разобратся :) все таки SQL читается по проще хотя возможно дело привычки. Есть еще один вопрос как вы определяете по каким документам нужно пройтись при запросе пользователем определенных корреспонденций или идете по всем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2008, 12:01 |
|
||
|
Проектирование БУ при хранение данных в ООБД
|
|||
|---|---|---|---|
|
#18+
ln123Спасибо большое за ответы и за примеры, правда в примерах без бутылки не разобратся :) все таки SQL читается по проще хотя возможно дело привычки. Есть еще один вопрос как вы определяете по каким документам нужно пройтись при запросе пользователем определенных корреспонденций или идете по всем? для быстрой работы поддерживается горячий справочник счет - обьекты и всякие-разные оптимизаторы в примерах не разобраться и без ящика водки :) там язык описания обьектов - на основе MUMPS (CACHE) SQL не используем - и рады бы но не знаем как его прикрутить к обьектам для работы с деревьями-обьектами приглянулся именно MUMPS. Может когда нибудь получится применить и SQL думаю наша переписка неинтересна людям - пишите на маил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2008, 12:18 |
|
||
|
Проектирование БУ при хранение данных в ООБД
|
|||
|---|---|---|---|
|
#18+
Мне кажется, делать надо так: счёт -- это класс. В нём определяется, какая на счёте должна быть аналитика. Например, Код: plaintext 1. 2. 3. Субсчёт, соответственно, это класс, наследующий счёт. Например Код: plaintext 1. 2. 3. А экземпляр класса "Счёт" -- это объект аналитического учёта, например, "товар А (должен быть одеждой) на складе Б на счёте 10.01". Он хранит в себе текущее сальдо и обороты по соответствующему счёту для соответствующего объекта. Проводка -- объект класса "Проводка", имеет дебет и кредит типа "Счёт", и сумму операции. Когда нам нужно создать проводку, мы сначала конструируем нужные аналитические объекты по дебету и кредиту, при этом если такие объекты уже раньше создавались, то мы должны получить их имеющиеся инстансы, и передаём их в проводку, которая делает движение по счетам. Вот как-то так, in123, как Ваше мнение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2008, 09:06 |
|
||
|
Проектирование БУ при хранение данных в ООБД
|
|||
|---|---|---|---|
|
#18+
FuzzyВот как-то так, in123, как Ваше мнение? С частью которая посвещенна счетам я полностью согласен, я приблизительно так это себе и представлял. А вот существование отдельного хранимого объекта проводка у меня вызывает сомнения. Часть своих мыслей по этому поводу я изложил здесь MX -- ALEXдумаю наша переписка неинтересна людям - пишите на маил Прелесть форума на мой взгляд в том что когда еще кому-нибудь станет интересна данная тема он сможет найти наше обсуждение :). К тому же я думаю что разные подходы к проектированию должны быть интересны народу, а ваш подход без хранения проводок существенно отличается от обще принятого поэтому тем более интересен. В принцыпе основные вещи вашего подхода мне понятны (Правда расчет себестоимости еще выше моего понимания :) но основная логика мне понятна). Остался последний вопрос в чем вы видите плюс своего подхода по сравнению с обще принятым и насколько он на ваш взгляд маштабируем? Например в одном из проектов где я участвовал за месяц делается порядка 500 тыс проводок из них 200 тыс это закрытие счетов сможет ли ваш подход потянуть такой объем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2008, 13:08 |
|
||
|
Проектирование БУ при хранение данных в ООБД
|
|||
|---|---|---|---|
|
#18+
ln123 FuzzyВот как-то так, in123, как Ваше мнение? С частью которая посвещенна счетам я полностью согласен, я приблизительно так это себе и представлял. А вот существование отдельного хранимого объекта проводка у меня вызывает сомнения. Часть своих мыслей по этому поводу я изложил здесь Рад, что изложенный подход нашёл понимание :) Давайте дальше попробуем построить полностью объектную модель бухучёта! А какие, собственно, проблемы с отдельным хранимым объектом "проводка"? Очень удобный объект, знакомый бухам, зачем от него отказываться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2008, 16:22 |
|
||
|
Проектирование БУ при хранение данных в ООБД
|
|||
|---|---|---|---|
|
#18+
То что проводка знакомый бухам объект вовсе не значит во первых что он существует :), а во вторых что он является наиболее удобным для хранения. Бухам для отображения в интерфейсе можно и налету проводок нагенирить по типу как MX -- ALEX делает. На мой взгляд первичным объектом для БУ является счет, а проводка только лог изменения счетов а лог можно хранить по разному... Правда тут я немного утрирую, т.к. действительно логом можно считать полупроводки, а проводка содежит в себе еще и информацию о корреспонденции т.е. с какого счета на какой были сделанны перемещения. Например, при приведение документа мы вычисляем какие объекты счетов нужно изменить и тут существует несколько вариантов приведу, тот который сейчас мне больше нравится хотя у него есть недостаток. У объекта счет есть атрибут значение который представляет собой массив (либо список) объектов с атрибутами сумма (текущая полученная сумма по счету на момент проведения), документ инициатор изменения, дата время создания объекта, учетная дата, создатель (хотя его можно хранить в документе).При проведение объект счет своим приватным методом создает новый объект значение и сохраняет его. Как то вот так... Для ответа на вопрос бухгалтера о оборотах в коррепонденции д 10 - к 60 нужно будет выбрать документы изменившие остатки по счету 10 и по счету 60 и сгенирировать таблицу проводок по ним из которой убрать все корреспонденции отличные от д 10 - к 60. Если плюсы у такого подхода или только одни минусы вот это бы я и хотел понять... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2008, 17:21 |
|
||
|
Проектирование БУ при хранение данных в ООБД
|
|||
|---|---|---|---|
|
#18+
ln123То что проводка знакомый бухам объект вовсе не значит во первых что он существует :), а во вторых что он является наиболее удобным для хранения. Бухам для отображения в интерфейсе можно и налету проводок нагенирить по типу как MX -- ALEX делает. На мой взгляд первичным объектом для БУ является счет, а проводка только лог изменения счетов а лог можно хранить по разному... Правда тут я немного утрирую, т.к. действительно логом можно считать полупроводки, а проводка содежит в себе еще и информацию о корреспонденции т.е. с какого счета на какой были сделанны перемещения. Например, при приведение документа мы вычисляем какие объекты счетов нужно изменить и тут существует несколько вариантов приведу, тот который сейчас мне больше нравится хотя у него есть недостаток. У объекта счет есть атрибут значение который представляет собой массив (либо список) объектов с атрибутами сумма (текущая полученная сумма по счету на момент проведения), документ инициатор изменения, дата время создания объекта, учетная дата, создатель (хотя его можно хранить в документе).При проведение объект счет своим приватным методом создает новый объект значение и сохраняет его. Как то вот так... Для ответа на вопрос бухгалтера о оборотах в коррепонденции д 10 - к 60 нужно будет выбрать документы изменившие остатки по счету 10 и по счету 60 и сгенирировать таблицу проводок по ним из которой убрать все корреспонденции отличные от д 10 - к 60. Если плюсы у такого подхода или только одни минусы вот это бы я и хотел понять... Я так понимаю, плюс -- это легко получить сальдо и обороты по счёту на любую дату. Ещё какие? А минус -- по-моему, неудобно проводки генерировать на лету, да и фактически информацию о проводке придётся хранить дважды, в дебетовых и в кредитовых счетах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2008, 17:34 |
|
||
|
Проектирование БУ при хранение данных в ООБД
|
|||
|---|---|---|---|
|
#18+
авторЯ так понимаю, плюс -- это легко получить сальдо и обороты по счёту на любую дату. Ещё какие? А минус -- по-моему, неудобно проводки генерировать на лету, да и фактически информацию о проводке придётся хранить дважды, в дебетовых и в кредитовых счетах. Еще то что нет ситуаций что сумма проводок разошлась с суммой по документам, и разошлась с суммой остатков на счетах. Плюс отсуствует не нужная сущьность. Плюс существует ситуации когда инфомации нужно хранить меньше чем при хранение проводок например мы проводим приходную накладную из 10 строк при проводочной системе у нас будет например 10 проводок при предлагаемой системе по одному изменению на каждом экземпляре счета, всего будет задействовано 11 объектов (10 объектов по 10-тому счету если он ведется в разрезе номенклатур и один по 60-тому) По поводу генерации проводок на лету тут меня очень интересует мнение MX -- ALEX они почему то такую систему выбрали решив не замарачиватся с хранением проводок мне интересно почему? А хранение информации два раза тут вопрос спорный и зависит от точки зрения на то что мы храним. В моем случае мы храним лог изменения значения счета и для каждого счета он свой. В общем тут думать нужно, не все так просто можно например сдвинутся еще дальше и хранить изменяемые счета внутри изменяющего документа это уберет дублирование данных, но такой вариант нужно уще обдумать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2008, 18:20 |
|
||
|
Проектирование БУ при хранение данных в ООБД
|
|||
|---|---|---|---|
|
#18+
ln123Еще то что нет ситуаций что сумма проводок разошлась с суммой по документам, и разошлась с суммой остатков на счетах. Плюс отсуствует не нужная сущьность. Не могу пока согласиться, что проводка -- ненужная сущность. Она связывает дебет и кредит хозяйственной операции друг с другом. Если движения по счетам разрешить делать только проводками, то это гарантирует нам, что дебет всегда будет равен кредиту. Разве это не важно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2008, 19:17 |
|
||
|
Проектирование БУ при хранение данных в ООБД
|
|||
|---|---|---|---|
|
#18+
ln123 авторЯ так понимаю, плюс -- это легко получить сальдо и обороты по счёту на любую дату. Ещё какие? А минус -- по-моему, неудобно проводки генерировать на лету, да и фактически информацию о проводке придётся хранить дважды, в дебетовых и в кредитовых счетах. Еще то что нет ситуаций что сумма проводок разошлась с суммой по документам, и разошлась с суммой остатков на счетах. Плюс отсуствует не нужная сущьность. Плюс существует ситуации когда инфомации нужно хранить меньше чем при хранение проводок например мы проводим приходную накладную из 10 строк при проводочной системе у нас будет например 10 проводок при предлагаемой системе по одному изменению на каждом экземпляре счета, всего будет задействовано 11 объектов (10 объектов по 10-тому счету если он ведется в разрезе номенклатур и один по 60-тому) По поводу генерации проводок на лету тут меня очень интересует мнение MX -- ALEX они почему то такую систему выбрали решив не замарачиватся с хранением проводок мне интересно почему? А хранение информации два раза тут вопрос спорный и зависит от точки зрения на то что мы храним. В моем случае мы храним лог изменения значения счета и для каждого счета он свой. В общем тут думать нужно, не все так просто можно например сдвинутся еще дальше и хранить изменяемые счета внутри изменяющего документа это уберет дублирование данных, но такой вариант нужно уще обдумать Обьект - документ - хранится в базе данных при нем методы - в том числе метод - "расчет проводок" метод вырабатывает проводки по правилам, заложенным в специальной настроечной таблице , правила разные для разных периодов времени посчитанные проводки могут прикрепляются к обьекту-документу - уже как его свойства но на CACHE это мало повлияет на скорость в случае небольших систем и в любом случае бесполезно при изменении правил игры задним числом (что тоже случается) самый крупный наш обьект производит всего лишь 17 000 документов в месяц остальные еще меньше - поэтому нам такой вариант - "проводки на лету" - в условиях обьектной модели и CACHE как базы данных - представляется наиболее рациональным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2008, 11:40 |
|
||
|
Проектирование БУ при хранение данных в ООБД
|
|||
|---|---|---|---|
|
#18+
Fuzzy ln123Еще то что нет ситуаций что сумма проводок разошлась с суммой по документам, и разошлась с суммой остатков на счетах. Плюс отсуствует не нужная сущьность. Не могу пока согласиться, что проводка -- ненужная сущность. Она связывает дебет и кредит хозяйственной операции друг с другом. Если движения по счетам разрешить делать только проводками, то это гарантирует нам, что дебет всегда будет равен кредиту. Разве это не важно? Тут я с вами согласен. Действительно важно на эту тему в топике Проводки vs полупроводки много копий сломанно. Только существует ситуация когда равенство дебета и кредита не нужно, например забалансовые счета т.е. необходимость равенства дебета и кредита должна определяться настройкой плана счетов. Мне видиться возможным например слудеющий вариант взаимодействия. Имеем объект План счетов и объект Документ у объекта документ есть метод Провести, при вызове данного метода формируется объект(ы) Проводка (содержащий дебет, кредит, сумму) этот объект не является хранимым, он передается объекту План счетов который уже проверяет правильность и допустимость движения по счетам описанного объектом Проводка (сохранять или нет этот объект это внутрения реализация объекта План счетов которую никто из вне не видит) если движение допустимо меняются остатки по счетам (остатки по счетам могут изменяться только объектом План счетов и ни каким другим способом). Все описанное это в чистом виде паттерн Команда. Таким образом мы можем обеспечить то что дебет равен кредиту если это нужно и вынести вопрос о том хранить или нет (а если хранить то как в ООБД есть видь много вариантов) объект Проводка на уровень реализации объекта План счетов, всем остальным объектом должно быть безразлично храним мы проводки или нет. to MX -- ALEX Спасибо за ваш ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2008, 15:43 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35077615&tid=1544049]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
171ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 487ms |

| 0 / 0 |
