Project of an advertising campaign
Смею заметить что в задании допущена одна неточность. Требуеться создать несколько рекланых кампаний, к каждой из компаний должно быть подвязано несколько реклам. Тоесть связь один ко многим. Создать следующие модели для данных в базе данных:
В таблице campaigns есть поле ads которое должно содержать id-и реклам которые относятся к данной рекламной компании. Но чтоб организовать связь один ко многим, тоесть одна рекламная компания связана с несколькими рекламами, необходимо просто добавить ячейку с id рекламной компании в таблицу рекламы. Так как связь между таблицами устанавливаеться при помощи связи через FOREIGN KEY, а он может быть только один в одном поле, а не массив таких ключей в одном поле. Следовательно я немного изменил модели. Из модели рекламной кампании убрал поле ads и добавил поле campaing в модель рекламы. Это позволило связать несколько реклам с одной рекламной компанией. Также при таком решении не потребовалось создавать отдельно третей таблицы для связи id рекламной капании и несколькоих id реклам. Также выполняются все логические требования вашего задания.
При запуске приложения используеться база данных H2 в памяти. Создаеться две рекламных компании, каждая из которых содержит по два обьявления.
SELECT * FROM CAMPAINGS;
ID | NAME | STATUS | START_DATE | END_DATE |
---|---|---|---|---|
1 | camp_1 | 0 | 2019-02-28 13:53:26.872 | 2019-02-28 13:53:26.872 |
2 | camp_2 | 0 | 2019-02-28 13:53:26.872 | 2019-02-28 13:53:26.872 |
SELECT * FROM ADS;
ID | NAME | STATUS | PLATFORMS | ASSERT_URL | CAMPAINGS |
---|---|---|---|---|---|
1 | ad_1 | 0 | (0, 1, 2) | localhost | 1 |
2 | ad_2 | 0 | (0, 1, 2) | localhost | 1 |
3 | ad_1 | 0 | (0, 1, 2) | localhost | 2 |
4 | ad_2 | 0 | (0, 1, 2) | localhost | 2 |
Прошу обратить внимание как я связал рекламные кампании и рекламы между собой.
Запустить проект можно двумя способами:
-
Склонить проект и открыть проект в студии, как мавен проект, запустить при помощи класса CampaignApplication
-
Установить maven, cклонить проект, стать в его корень, выполнить каманду
mvn clean pakage
. Произойдет сборка проект при помощи maven, потом перейти в каталоп target, и запустить при помощи java jar файлjava -jar campaign-0.0.1-SNAPSHOT.jar
После запуска проекта надо перейти по адресу http://localhost:8080/swagger-ui.html, тут вы увидете список всех контроллеров которые ест в проекте.
Так же можно посмотреть H2 консоль, она поможет увидеть все данные в базе данных, по адресу http://localhost:8080/h2-console и нажать "Connect"