sedovalx / taxi

6 stars 3 forks source link

Восстановить схему доменных сущностей #20

Closed sedovalx closed 9 years ago

sedovalx commented 9 years ago

Мы составляли схему доменных сущностей. Нужно ее актуализировать и перенести в Visio. Файл со схемой положить на github.

sedovalx commented 9 years ago

@hodkoff2 @Argelein Раз других предложений не поступило, сделаем следующую схему касательно списания арендной платы с водителя. Делаем кнопку "Списать арендную плату":

Баланс водителя при этом будет вычисляться по формуле: Б = Бнач - СУМ(КТ*тариф) + СУМ(АП) - СУМ(Ремонт), где

Т.к. аренда у нас может находиться в нескольких разных статусах: открыта, закрыта, приостановлена, то для расчета баланса водителя мы должны хранить историю изменения статусов аренды, чтобы не списывать АП во время приостановки аренды. Для этого заведем таблицу с признаками:

sedovalx commented 9 years ago

@hodkoff2 @Argelein @v1pka Первое. Дополнил схему данных. Дим, проверь пожалуйста. Чтобы ее накатить на БД, нужно сначала все удалить. Можно даже БД пересоздать. Затем выполнить скрипт server/conf/sql/schema_up.sql. После этого чтобы все удалить достаточно будет выполнить скрипт schema_down.sql. Давайте поддерживать в актуальном состоянии эти два скрипта при изменении схемы данных.

Второе. Как эту схему красиво посмотреть? Вот тут в видео ответ. Идем в IntelliJ IDEA -> Views -> Tool Windows -> Database и настраиваем там соединение с PostgreSQL. На странице с настройками соединения не забудьте кликнуть на Add Driver, чтобы он скачался. После этого синхронизируйте отображение на вкладке Database с БД, появятся все таблицы. Тут же их можно менять, добавлять новые и строить на их основе диаграмму.

Третье. Предлагаю отказаться от ведения файла модели в Visio, а менять ее прямо в БД, при этом актуализируя скрипты schema_up и schema_down.

Четвертое. Дима, на основании схемы таблиц в БД можно сгенерировать Scala-классы с маппингом. Генерировать легче чем писать самому, поэтому это наш путь! Осталось разобраться, как это делать. Возьмешься?

sedovalx commented 9 years ago

Доменная модель теперь описывается схемой в БД. Имена таблиц из car_class преобразуются к CarClass. Имена полей из sec_phone в secPhone.