Skip to content

mrdltn/filmStorageBase

Repository files navigation

Постановка задачи:

Спроектирвоать базу для хранения фильмов.

База должна давать возможность хранить информацию как на странице: https://www.kinopoisk.ru/film/435/

  • Для хранения художников, композиторов, монтажеров и пр используем одну таблицу person

-- упрощаем и чтобы не плодить кучу таблиц только в главных ролях и роли дублировали будут иметь (film-person) связь многие ко многим

-- для остальных ставим связь один ко многим (поэтому в графе сценарий у нас для фильма будет всего один сценарист [например, только Фрэнк Дарабонт], аналогично и по другим полям персон)

  • Жанры также хранятся в отдельной таблице исвязываются далее с фильмами

  • зрители по странам тоже в отдельной таблице (флажки можно не хранить) ВСЕ ПРО ЧТО В ПРОЕКТИРОВНИИ МНОЮ ЯВНО НЕ СКАЗАНО МОЖНО ДЕЛАТЬ НА СВОЕ УСМОТРЕНИЕ В качестве результата загрузить SQL код на github, который генерирует соответсвующую структуру БД БАЗУ ИСПОЛЬЗОВАТЬ ИМЕННО POSGRE SQL даже если вы знаете другую. Именно ее мы используем у нас в компании.

  1. Написать маленький сервер на nodeJS, который работает с упрощенной базой данных фильмов:
  • таблица жанров -pk -- название жанра
  • таблица фильмов -- pk -- название -- год выпуска

у каждого фильма может быть несколько жанров

Реализовать на nodeJS CRUD опреации для взаимодействия с жанрами с CRUD операции для взаимодействия с фильмами.

Тестировать свою работу можно через postman. В качестве результатов сервер просто возвращает данные в JSON формате.

Решения задачи

Файлы db_big.sql

  • Создаём базы данных 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';

  1. Дополнительно о структуре:
  • Папка routes содержит роутеры для сущностей film, genre;
  • Папка controllers содержит функции для сущностей film, genre (выполняются при запросе с определёнными URL и методами (POST, GET, ...));
  • Папка framework. Содержит классы приложения (Application), роутеров (Router), и middleware-функции парсеры JSON и URL.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors