Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Access > Иерархическая модель данных - счета


Автор: Gulf_Stream 7.3.2008, 20:06
Всем привет!
Есть БД, которая описывает финансовые операции. Далее эти опреации объеденяются в группы, эти группы объединяются в более крупные группы и т.д. Проблемы в том, что БД спроектирована человеком который плохо разбирался в БД, но хорошо разбирался в финансах ( обычная ситуина для провинции =) ) В итоге получилась такая струкутра БД:
[ {Первый уровень} - одно текстовое поле- ключ]
[ {Второй уровень} - ключ, внешний ключ на первый уровень, аттрибуты  ]
[ {третий уровень} - ключ, внешний ключ на второй уровень, аттрибуты  ]
и т.д.

Каждая из этих таблиц заполняется отдельным запросом, который берёт данные в "общей" таблице, которая содержит непосредственно данные о финансовых операциях.

В 2007 офисе, эта БД представляется в виде красивого иерархического списка, который "разворачиваеися" именно так как удобно экономисту. Т.е. сначала группы счетов, потом счета, потом субсчета и т.д.
Т.е. всё красивенько, но ведь структура БД неправильная, и вылезают проблемы, напрмер если в "общую" таблицу вносятся изменения, то надо заново выполнять запросы, обновить "зависимые" таблицы.

И вот он главный вопрос: как привести структуру БД к нормальной, но при этом сохранить удобство для людей которые будут ей пользоваться (показывать в виде иерархического списка).
 






 

Автор: shilnik 17.3.2008, 13:03
Мне кажется, что при фиксированном количестве уровней такая структура таблиц вполне правильная.
Обновлять таблицы при любом раскладе надо будет. Если кем-то меняются данные, то остальным надо перечитать таблицы, чтобы увидеть изменения.
Что конкретно не устраивает в существующей структуре?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)