За последние 24 часа нас посетили 17542 программиста и 1649 роботов. Сейчас ищут 926 программистов ...

Разработка и реализация web приложения используя mysql

Тема в разделе "PHP и базы данных", создана пользователем Romeo91, 6 окт 2016.

Метки:
  1. Romeo91

    Romeo91 Новичок

    С нами с:
    6 окт 2016
    Сообщения:
    1
    Симпатии:
    0
    Доброго времени суток форумчане. Дайте направление. P.s. Благодарю
    Дано


    Произвольное количество пользователей. У каждого пользователя есть логин, пароль, Ф.И.О.
    Произвольное число групп. Каждая группа имеет название.
    Между пользователями существуют отношения субординации(подчинения)
    Каждый пользователь может входить в ноль или более групп
    Не допускается циклическая субординация(когда Вася начальник Пети, Петя начальник Ивана, а Иван начальник Васи)

    Требуется

    Разработать и реализовать реляционную БД, используя СУБД MySQL
    Написать web-приложение, позволяющее управлять содержимым разработанной БД. Оно должно обеспечивать следующие возможности:
    вывод списка пользователей с обозначением начальника каждого из них, и групп, в которые он входит;
    добавление пользователей;
    установление между пользователями отношения субординации(с автоматической проверкой отсутствия циклической субординации);
    редактирование данных пользователя
    включение пользователя в произвольную существующую группу;
    исключение пользователя из любой групп, в которую он входит;
    удаление пользователя;
    вывод списка групп;
    изменение данных любой существующей группы;
    добавление новой группы;
    удаление любой существующей группы.

    Результат работы

    Результатом выполненного тестового задания являются:

    SQL-дамп БД с минимальным набором необходимых для проверки работоспособдости данных;
    php-скрипты, необходимые для работы приложения;
    файлы ресурсов(css, картинки и пр.);
    краткая инструкция по установке.
    Дополнительные условия

    Язык написания приложения — php
    Среда работы приложения — web-сервер Apache (cgi, mod_php или fast-cgi не важно)
    Запрещается использование любых CRUD-фрэймворков или прочих ORM (Object-relational mapping) библиотек для отображения БД в объектах.
     
  2. Poznakomlus

    Poznakomlus Активный пользователь

    С нами с:
    12 сен 2014
    Сообщения:
    96
    Симпатии:
    19
    Адрес:
    Киев
    1. Таблица пользователей
    2. Таблица групп
    3. Таблица связей пользователей Nested
    4. Таблица связей пользователей и групп. Так как про подгруппы ни слова можно обычную ид пользователя и ид группы
    5. Не забываем про индексы для полей таблиц
    Берем MySQL Workbench рисуем и создаем базу с нашими таблицами
    а дальше дописываешь код, думаю если один код покажешь то возьмут сразу, только как-же потом будешь отдуваться, или думаешь научишься?
    PHP:
    1. <?php
    2. # Author - Fedor Vlasenko, vlasenkofedor@mail.ru php 7
    3. define('METHOD', $_SERVER['REQUEST_METHOD']);
    4. define('URI', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
    5.  
    6. /**
    7. * @param        $sql
    8. * @param array  $binds
    9. * @param string $method
    10. * @param array  $params
    11. *
    12. * @return bool|mixed|PDOStatement
    13. */
    14. function query($sql, array $binds = [], $method = '', array $params = [])
    15. {
    16.         static $pdo;
    17.         if (null === $pdo)
    18.         {
    19.                 $pdo = new \PDO('mysql:host=localhost;dbname=micro', 'root', '', //pass empty
    20.                     [
    21.                         \PDO::ATTR_EMULATE_PREPARES   => false,
    22.                         \PDO::ATTR_ERRMODE            => \PDO::ERRMODE_EXCEPTION,
    23.                         \PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
    24.                         \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC
    25.                     ]);
    26.         }
    27.  
    28.         try
    29.         {
    30.                 $sql = str_replace('__', 'cms_', $sql);
    31.                 if ([] === $binds)
    32.                 {
    33.                         $query = $pdo->query($sql);
    34.                 }
    35.                 else
    36.                 {
    37.                         $query = $pdo->prepare($sql);
    38.                         $query->execute($binds);
    39.                 }
    40.                 $method && $query = call_user_func_array([$query, $method], $params);
    41.         }
    42.         catch (\Exception $e)
    43.         {
    44.                 $query = false;
    45.         }
    46.  
    47.         return $query;
    48. }
    49.  
    50. /**
    51. * @param string $url
    52. * @param array  ...$args
    53. */
    54. function router($url, ...$args)
    55. {
    56.         (empty($args[1]) || false !== strpos(METHOD, $args[0]))
    57.         && (URI === $url || preg_match('#^' . $url . '$#iu', URI, $match))
    58.         && die(call_user_func_array(end($args), $match ?? []));
    59. }
    60.  
    61. router('/', function ()
    62. {
    63.         $result = query('SELECT * FROM __users LIMIT 10', [], 'fetchAll');
    64.         printf('<pre>%s</pre>', print_r($result, true));
    65.         echo 'Main Micro';
    66. });
    67.  
    68. router('/user/(.*[^/])', 'GET', function (...$args)
    69. {
    70.         echo 'User: ', $args[1];
    71. });
    72.  
    73. header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');
    74. echo '404';
     
  3. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Блин, как можно собеседоваться на вакансию, если сам не в состоянии сделать тз? Эхехе..
     
  4. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    вот эта строка заинтересовала. Так сразу и не приходит в голову как такое реализовать...
     
  5. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    Собеседовали выпускницу одного московского вуза по специальности. Диплом - непосредственно пыхыпе-проект. Отличие абстрактных классов от интерфейсов - не знаю, left join тоже. ЗП хочу 70 000, но для начала, "пока втягиваюсь" согласна на 40 :)
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @Zuldek взяли? Надо таким предлагать, чтобы они вам платили 40.000 рублей пока она втягивает новые знания