Спроектирвоать базу для хранения фильмов.
База должна давать возможность хранить информацию как на странице: https://www.kinopoisk.ru/film/435/
- Для хранения художников, композиторов, монтажеров и пр используем одну таблицу person
-- упрощаем и чтобы не плодить кучу таблиц только в главных ролях и роли дублировали будут иметь (film-person) связь многие ко многим
-- для остальных ставим связь один ко многим (поэтому в графе сценарий у нас для фильма будет всего один сценарист [например, только Фрэнк Дарабонт], аналогично и по другим полям персон)
-
Жанры также хранятся в отдельной таблице исвязываются далее с фильмами
-
зрители по странам тоже в отдельной таблице (флажки можно не хранить) ВСЕ ПРО ЧТО В ПРОЕКТИРОВНИИ МНОЮ ЯВНО НЕ СКАЗАНО МОЖНО ДЕЛАТЬ НА СВОЕ УСМОТРЕНИЕ В качестве результата загрузить SQL код на github, который генерирует соответсвующую структуру БД БАЗУ ИСПОЛЬЗОВАТЬ ИМЕННО POSGRE SQL даже если вы знаете другую. Именно ее мы используем у нас в компании.
- Написать маленький сервер на nodeJS, который работает с упрощенной базой данных фильмов:
- таблица жанров -pk -- название жанра
- таблица фильмов -- pk -- название -- год выпуска
у каждого фильма может быть несколько жанров
Реализовать на nodeJS CRUD опреации для взаимодействия с жанрами с CRUD операции для взаимодействия с фильмами.
Тестировать свою работу можно через postman. В качестве результатов сервер просто возвращает данные в JSON формате.
- Создаём базы данных db_big и db.small.sql;
- В БД db_big.sql cоздаём 4 основные таблицы film, person, audience, genre;
- А также, 3 "перекрёстные" таблицы (осуществляем связь "многие ко многим");
-
Настройки доступа к базе данных (PostgreSQL) находятся в файле db.js:
-
Поле user - 'postgres';
-
Поле password - 'mir';
-
Поле host - 'localhost';
-
Поле port - 5432;
-
Поле database - db_small;
-
В реджиме dev заупскаем команду 'npm run dev';
- Дополнительно о структуре:
- Папка routes содержит роутеры для сущностей film, genre;
- Папка controllers содержит функции для сущностей film, genre (выполняются при запросе с определёнными URL и методами (POST, GET, ...));
- Папка framework. Содержит классы приложения (Application), роутеров (Router), и middleware-функции парсеры JSON и URL.