Задать вопрос
Ответы пользователя по тегу Базы данных
  • Какие таблицы могут быть связаны со стойкой регистрации в аэропорту?

    Ну глупое требование про 20 таблиц, конечно. Гулять так гулять :)

    1. Аэропорт
    - Название
    - Код ICAO

    2. Сотрудник
    - Аэропорт (FK)
    - ФИО
    - Должность

    (Я не в курсе, как работают сотрудники на стойках регистрации, но давайте предположим, что постоянно.)

    3. Стойка регистрации
    - Аэропорт
    - Сотрудник
    - Время работы
    - Тип
    - ...

    4. Модель самолёта
    - Название

    5. Авиакомпания
    - Название

    6. Рейс
    - Аэропорт вылета (FK)
    - Аэропорт назначения (FK)
    - Модель самолёта (FK)
    - Авиакомпания (FK)
    - Время вылета
    - Время прибытия
    - Длительность полёта (денормализовано слегка, чтоб каждый раз не считать)

    7. Пассажир
    - ФИО
    - Дата рождения
    - Паспортные данные

    8. Скидки
    - Название
    - Величина скидки в %

    9. Регистрация
    - Пассажир (FK)
    - Рейс (FK)
    - Стойка (FK)
    - Скидка (FK)
    - Номер места
    - Цена

    10. Багаж
    - Регистрация (FK)
    - Номер багажа
    - Масса
    - Стоимость

    На этом у меня вдохновение иссякло. Но вы можете раздуть это в разные направления:
    - Типы воздушных судов (самолёты, вертолёты)
    - Техническое обслуживание, занятые в нём техники
    - Расчёт зарплаты сотрудников аэропорта, в том числе регистраторов на стойках
    - Типы воздушных линий (местные, международные)
    - ...
    Ответ написан
  • Как хранить интервальное расписание в БД?

    1. Прежде всего, расписание можно задавать естественным языком, или хранить в JSON придумав какой-нибудь DSL, - вне зависимости от базы данных. Превосходная библиотека для этого: https://github.com/kvh/recurrent (хотя поддерживает только английский). Если вам нужно, например, делать рассылки, - вы пробегаете по всем активным расписаниям в цикле, проверяете, соответствует ли текущая дата расписанию, и выполняете действие.
    2. Если такую выборку делать хочется очень быстро и средствами БД, тогда при вводе вышеупомянутого высокоуровневого расписания можно заполнять все даты в некоем кэше (или в отдельной таблице в БД), выставляя флаг для пары (дата, id расписания). При изменении расписания эта матрица для него перевычисляется.
    3. Как быть с исключаемыми днями? Можно в каждом из объектов предлагать два поля: "Расписание" (например: every friday) и "Исключая" (например: 1 Jan - 10 Jan).
    Ответ написан
    Комментировать
  • Как сделать базу данных с технические характеристики разных товаров?

    - Нереляционные СУБД позволили бы вам это делать, но взамен вам придётся заплатить невозможностью использовать внешние ключи, контролем целостности и прочими возможностями реляционных СУБД.
    - Постреляционные СУБД (OrientDB, скажем) умеют такое и имеют контроль целостности, но с ними ещё разбираться надо. Сообщество не так уж велико.
    - На мой взгляд оптимальное на данный момент решение - использовать PostgreSQL, все разновидности товаров вести в одной таблице, а для специализированных атрибутов, специфичных для категорий, создать один столбец data типа HStore, который хранит массив вида ключ-значение.
    Ответ написан
    Комментировать
  • Где найти календари техобслуживания автомобилей?

    Иногда срок гарантии на некоторые компоненты зависит от региона, в котором автомобиль эксплуатируется. По крайней мере в США.

    Такая информация постоянно изменяется и её нужно поддерживать в актуальном состоянии. Поэтому вряд ли получить сводную базу данных можно бесплатно. Кажется, это примерно то, что вам нужно - www.edmunds.com/car-maintenance/guide-page.html - у них есть API, через который можно получать данные.

    Если хочется бесплатно - думаю, придётся обращаться к сайту каждого производителя отдельно и получать оттуда информацию по каждому конкретному автомобилю.
    Ответ написан
  • Почему mysqldump вешает базу?

    Встречал такую проблему на MySQL. В ходе резервного копирования довольно большой базы (неархивированный SQL занимал сотни мегабайт) нормальная работа с ней становилась невозможна. Обошли с помощью Percona Xtrabackup, во время работы которой нагрузка не заметна совсем.

    Судя по первой же ссылке в гугле, она поддерживает MariaDB.
    Ответ написан