все что связано с моей работой
Главная » Програмирование » Доп. расшифровка. Проектирование базы.

Доп. расшифровка. Проектирование базы.

Итак, программу разобрали – можно начать проектирование.

Начнем с базы.

По порядку в описании таблиц идут MBUD, MOKRUG, MOKPOS они так и просятся чтоб их объединили в одну таблицу и организовали деревом, единственное поле KVB потребуется много где, а остальные ключевые поля ORG и POS отставим пока за компанию. Да и строить дерево потом в интерфейсе легче будет. Наименованию положим 200 символов, мало ли какая у кого подведомственная будет.

Есть один нюанс при выборе территории: “как определить что эту территорию можно выбрать”. Ведь нельзя вносить отчеты в территории “Муниципальные районы” или “Поселения”. Вот тут нам и пригодятся поле KVB, его будем заполнять только в тех территориях, которые можно выбрать. Группирующие строки, как например “Муниципальные районы”, будут равны NULL. Таким образом эта проблема решиться.

Следующая таблица MFORM, ее переносим почти без изменений. Поля переименуем и поле указывающее периодичность отчетности (было N, стало Period) сделаем не символьным, а integer: 1 – квартальная отчетность, 2- месячная.

Вообще все “ключевые” поля содержащие коды, как то: KVB, ORG и POS, переделаем с символьного в integer.

Теперь главная таблица – ОТ. В оригинале на каждую форму и период создавалась своя база, чтоб не плодить кучу таблиц объединим все в одну. Просто добавим поля “Год” и “Месяц”, чтоб облегчит выборку не будем использовать поле типа Datetime, а разобьем и будем хранить по отдельности. Поля “Территория” и “Форма” будут ссылки на строки в соответствующих справочниках. Поле КО тоже заменим на ссылку SSOOTID, хранение кода избыточно, к тому же в справочнике кодов может быть несколько одинаковых кодов в разных формах.

Осталась последняя группа таблиц – справочники кодов, SSOOT. Их тоже объединим, в связи с этим добавим поле FormID для отделения форм, увеличим количество полей маски ввода до 14 и добавим поля из справочника программ SSOOT3. VID – вид программы. KOS, ORG, POS – из этих полей строится код программы: “<ORG> <POS> <KOS>”, код территории и поселения берется из настроек. KOS – это порядковый номер программы. Вероятно стоит предусмотреть процедуру перенумерации кодов после заполнения/правки справочника программ.

Ниже диаграмма, которая описывает все выше сказанное:

database

Рисовал в Dia, мощная штука для таких целей. Поддерживает UML, если дочитаю книжку попробую нарисовать UML диаграммы для доп.расшифровки.

Это еще не заключительный вариант, и в процессе еще будут изменения например в таблицу SSOOT добавить поле LineOrder отражающее порядок следования строк отчета.

Комментариев нет

No comments yet.

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.