Результат минимизации числа подсхем:
ρ={R1(A1,A2,A3,A4), R2(A1,B1,B2,B3,B4,B5,B6,D1), R3(C1,C2,C3,C4,C5,C6,C7), R4(D1,D2), S1(C1,B1,Z1)}
Переход от ER-диаграммы к схеме базы данных представлен на рисунке 7.
При составлении сметы адрес проведения работ иногда совпадает с фактическим адресом заказчика (частные предприниматели), поэтому при открытии формы заполнения полей сметы значение поле «адрес проведения работ» присваивается автоматически, при этом имеется возможность для редактирования.
Сущность «Протокол» содержит данные о выполняемых услугах: количество работ, сумма. Связь «один-ко-многим» между сущностями «Протокол» и «Смета» позволяет отображать в смете от одной до нескольких видов работ. Каждую услугу могут выполнить либо один, либо несколько работников (необязательный класс принадлежности). Связь «Выполняет» содержит атрибут «норма времени», определяющий количество часов, которые заработает данный сотрудник, при условии, что будет выполнена соответствующая работа. Значение нормы времени в каждом конкретном случае различно и одну и ту же работу могут выполнять одновременно несколько человек (связь «многие-ко-многим» между сущностями «сотрудник» и «протокол»), поэтому для однозначной идентификации работы значение нормы времени формируется при определении связи. Каждый протокол включает наименование услугу и ее цену. Атрибут «количество» определяет, сколько услуг данного вида будет выполнено.
|
Рисунок 7 – схема БД «составление сметы»
Каждую услугу могут выполнить либо один, либо несколько работников (необязательный класс принадлежности). Связь «Выполняет» содержит атрибут «норма времени», определяющий количество часов, которые заработает данный сотрудник, при условии, что будет выполнена соответствующая работа. Значение нормы времени в каждом конкретном случае различно и одну и ту же работу могут выполнять одновременно несколько человек (связь «многие-ко-многим» между сущностями «сотрудник» и «протокол»), поэтому для однозначной идентификации работы значение нормы времени формируется при определении связи. Каждый протокол включает наименование услугу и ее цену. Атрибут «количество» определяет, сколько услуг данного вида будет выполнено.
Значение атрибута «норма времени» напрямую зависит от количества работ исполняемых в смете. Чем больше количество, тем выше значение нормы времени (НМ):
НМ = Количество * Норма 1 работы
Распределение нормы времени между работниками, выполняющими одну и ту же работу, неоднозначно и проставляется вручную.
Связь «один-ко-многим» между сущностями «Протокол» и «Услуги» показывает, что протокол может содержать множество услуг. Связь между этими сущностями может быть представлена видом «один-ко-одному», так как протокол как правило не содержит повторяющихся работ, но для большей гибкости базы данных связь представлена видом «один-ко-многим» (иногда может потребоваться расписать одну и туже работы с разными НДС и т.п).
2.1.4 Схема «оплата сметы, и принятие работ»
Для констатации факта того, что смета оплачена заказчиком, применяются такие документы, как «приходный кассовый ордер» и «счет». Каждая из смет может быть оплачена либо ПКО либо счетом. Каждая смета оплачивается либо одним или несколькими ПКО (связь «один-ко-многим»), либо одним счетом (связь «один-ко-одному»). Осуществление проверки того, каким документом оплачена смета, осуществляется программно (с какой таблицей связана сущность смета при данном значении ключевого поля).
Сущность Акт содержит информацию о сроках выполненных работ. Если к смете выписан один акт (связь «один-ко-одному») то смета считается принятой, при этом активизирует запрос, выполняющий начисление отработанных часов по смете соответствующему сотруднику
Смета может быть не оплачена и не принята - необязательный класс принадлежности со стороны сущностей «акт», «ПКО» либо «счет».
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.