GithubHelp home page GithubHelp logo

bsa-2017-php-2's Introduction

Binary Studio Academy PHP 2017

Домашнее задание #2

Требования

В этом задании мы будем работать с БД MySQL, а значит вам нужно установить её себе и настроить.

Рекомендуется использовать Vagrant и виртуальную машину Homestead. Подробнее здесь: https://laravel.com/docs/5.4/homestead

В Homestead MySQL уже установлен.

(user: homestead, password: secret)

Внимание: решение каждого задания необходимо предоставить в отдельном файле с расширением task%номер%.sql в папке src. Например, task8.sql.


Установка

Установка показана в рабочем окружении OS Linux:

git clone [email protected]:BinaryStudioAcademy/bsa-2017-php-2.git
cd bsa-2017-php-2
composer install

Задания

Перед каждым запуском теста, будет создана чистая структура базы данных на основе schema.sql

Данная структура представляет собой систему бронирования билетов. В таблице users хранятся данные о пользователях. В таблице tickets - билеты, которые могут быть куплены, bookings - хранит историю заказов пользователя.

Структура таблиц

tickets

title - имя билета

country - страна направления

price - цена

users

first_name - имя пользователя

last_name - фамилия пользователя

bookings

user_id - ссылка на пользователя

ticket_id - ссылка на билет

В первую очередь нужно создать базу данных.

Переходим в каталог src

cd src/

Подключаемся к базе mysql

mysql -u homestead -p secret

После подключения создаём базу данных bsa_php_2017:

CREATE DATABASE `bsa_php_2017`;
exit

Применяем схему данных и набор тестовых данных. Для этого запускаем скрипт в корне проекта.

./create_db

Перед запуском тестов проверь настройки подключения к базе в файле .env.

Теперь можно приступать к выполнению заданий.

Задание 1

Выбрать всех пользователей старше 25 лет, которые купили билетов на сумму больше чем 400 условных зайчиков.

Задание 2

Выбрать всех пользователей, которые купили хотябы один билет.

Задание 3

Добавить boolean поле is_deleted c дэфолтным значением 0 в таблицу users. Поле не должно принимать значение NULL.

Задание 4

Написать запрос, который обновит поле is_deleted и выставит значение 1 для всех пользователей, у которых нет ниоджного купленного билета.

Задание 5

Выбрать всех пользователей, которые ниразу не покупали билет в страну "Aruba".

Задание 6

Выбрать всех пользователей, которые покупали билет с именем "Lagos".


Проверка

Как и в первом задании свои решения можно проверить запустив тесты PHPUnit.

Все тесты:

./vendor/bin/phpunit

Или тест для каждого задания в отдельности
(Поскольку в этом случае у нас один тестовый класс используем --filter):

./vendor/bin/phpunit --filter task1

Приём решений

В идеале разместить ваше решение в одельном репозитории или форке текущего на Github или Bitbucket и прислать ссылку на него. Крайний вариант прислать ссылку на архив с решением.

bsa-2017-php-2's People

Contributors

m1x0n avatar sergii-bubalo avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.