Разработка базы данных и приложения, позволяющих осуществлять работу отдела продаж строительной фирмы по подбору и продаже квартир клиентам по заданным параметрам, страница 4

(Чтобы СУБД не работала с текстовыми ключами введем в отношения следующие ключи:

Объект строительства – ОС#

Клиент – КК# (ключем был № паспорта, но тип поля пришлось определить как текстовый))

3.3 Установление связей между отношениями.

Для связи отношений Квартира, Клиент, Менеджер, Оплата создадим новое отношение которое назовем Договор, в него включим КПр#,КК#, КП#, Наименование договора и еще два дополнительных поля:  дата заключения и дополнительные условия. Первичным ключем отношения Договор является  Наименование договора. (Чтобы СУБД не работала с текстовым ключем введем в отношение ключ КД#)

Вместо КПр# подставлено ФИО менеджера, вместо КК# подставлено ФИО клиента, вместо КП# подсталены Название ОС и № квартиры.

3.6 Устранение избыточности и объема данных

Объем хранимых данных можно уменьшить, если пронумеровать строки в таблицах. Получим следующие таблицы:

Объект строительства :

Название ОС, Адрес ОС, Количество этажей, Количество секций, Количество квартир на площадке, Тип конструкции (например, железобетонный каркас), Основной материал несущих стен (например, кирпич), Основной материал перегородок (например, пазогребневые плиты), Материал стеклопакетов, Вид стеклопакетов (например,однокамерные), Материал радиаторов (например, аллюминий), Вид кровли (например, двухскатная), Материал кровли (например, металлочерепица), Территория (открытый или закрытый двор), Вид отопления (например, поквартирное газовое), Наличие стоянки, Наличие цокольного этажа, Наличие верхнего технического этажа, Наличие лифта, Наличие гаража, Наличие детской площадки, Наличие домофона, Наличие телефонной линии, Дата начала строителства, Дата окончания строителства,Заметки

Квартира:

ОС#, Объект строительства, №квартиры, Этаж, Секция/подъезд, План (изображение плана квартиры), Вид планировки (например, свободная), Площадь жилая,  Площадь кухни,  Площадь лоджии, Количество комнат, Вид санузла (например, раздельный), Угловая, Застекленная лоджия, Наличие долнительного хозяйственного помещения, Материал входной двери (например, металл), Материал межкомнатных дверей (например, дерево), Вид куханной плиты (например, электро),  Количество окон, Статус (рассрочка), Текущая цена , № приказа об изменении цен, Дата установки цены

Убрали поля, которые можно вычислить - Текущая стоимость, Общая площадь

Клиент:

КК#, № паспорта, ФИО, Дата рождения, Адрес, Телефон, Телефон сотовый, Электронная почта, Банк, Расчетный счет

Менеджер:

КПр#,ФИО, Рабочий телефон

Оплата:

КО# (уникальный код присваеваемый каждой оплате), Сумма оплаты, Дата оплаты, Документ основание, Цена на момент покупки, Наименование договора

Убрали поля, которые можно вычислить - Оплаченные метры за оплату, Остаток неоплаченных метров по договору, Долг по договору.

Договор:

КПр#,  КД#, КП#,  КК#,  Наименование договора,  Дата заключения, Доп условия

схема

3.8. Фрагмент текущего состояния БД.

Приведем таблицы после всех модификаций.

Квартира:

12

13

14

15

16

Клиент:

9

10

11

Менеджер:

8

Объект строительства:

23

4

5

67

Оплата:

1

4. Запросы к базе данных и процедуры обработки данных.

Разработанная система должна обеспечивать возможные поиски информации по запросам пользователей, для примера приведем несколько запросов:

Запрос1. Оплаты

Посчитать количество оплаченных метров по договорам, подсчитать внесенные суммы, посчитать остатки неоплаченных метров и суммы долгов.

SELECT Договор.НаименованиеДоговора, Sum(Оплата.СуммаОплаты) AS [Sum-СуммаОплаты], Last([ПлощадьЖилая]+[ПлощадьЛоджии]+[ПлощадьКухни]) AS [Общая площадь], Sum([СуммаОплаты]/[ЦенаНаМоментПокупки]) AS Метры, Квартира.[КП#], Договор.[КД#], Квартира.Цена, [Общая площадь]-[Метры] AS [Остаток метров], [Остаток метров]*[Цена] AS [Долг в рублях]

FROM Договор INNER JOIN (Оплата INNER JOIN Квартира ON Оплата.[КП#] = Квартира.[КП#]) ON (Квартира.[КП#] = Договор.[КП#]) AND (Договор.[КП#] = Оплата.[КП#])

GROUP BY Договор.НаименованиеДоговора, Квартира.[КП#], Договор.[КД#], Квартира.Цена;

Результат:

5. БД информационной системы.

5.1 Структура и содержание таблиц БД

табл

1.  Таблица «Договор» хранит информацию: о менеджерах заключавших сделку, о покупателях (ФИО клиентов), о коде договоров, о проданных квартирах (место нахождение и номер квартир), о наименованиях договоров, о дате заключения договоров, о дополнительных условиях, оговоренных в договорах (если такие условия имеются). Таблица содержит 7 полей:

дог

17

18

2.  Таблица «Квартира» содержит информацию: об объектах строительства, о номерах квартир, о номерах этажей на которых находятся, приведенные в таблице квартиры, о подъездах в которых находятся, приведенные в таблице квартиры, о изображениях квартир (план помещений), о видах планировки, о размере жилой площади квартир, о площади кухни, о площади лоджии, о количестве комнат в квартирах, о виде санузла, о наличии угловой квартиры (да\нет), о наличии застекленной лоджии (да\нет), о наличии дополнительного хозяйственного помещения (да\нет), о виде входной двери, о виде межкомнатных дверей, о виде кухонной плиты, о количестве окон в квартире, о заметках, о цене за кв. м, о статусе квартиры, о номере приказа об изменении цен, о дате установления текущей цены. Таблица содержит 23 поля:

кварт   кварт 1

12

13

141516

3.  Таблица «Клиент» содержит информацию о: номере паспорта клиента, фамилии, имени и отчестве клиента, дате рождения, об адресе  клиента, сотовом и домашнем номере клиента, электронной почте клиента, банке сотрудничающем с клиентом, расчетном счете клиента. Таблица содержит 12 полей:

клиент

9

1011