alexjet73
@alexjet73

Как структурировать базу данных MySQL для онлайн записи?

Есть цель сделать онлайн запись, хочется услышать мнения по структуре базы MySQL для онлайн записи, т.е. как хранить данные чтобы удобно их обрабатывать.
Интервал записи может меняться (10, 20, 30, 40, 50, 60, 90, 120 мин), каждый день может быть любой интервал рабочего времени (Пн с 8 до 17 (обед с 12 до 13), Вт с 10 до 16 (без обеда) и тд).
Теряюсь в мыслях как структурировать всё по таблицам и на какие поля их поделить. Нужно хранить и общие настройки интервала и графика работы и в то же время индивидуальные настройки для каждого дня (если график меняется в этот день или вовсе выходной). Вообщем буду рад любым подсказкам и мыслям по более менее грамотной структуре таблиц.
  • Вопрос задан
  • 216 просмотров
Пригласить эксперта
Ответы на вопрос 1
@aleksmir
Системный администратор, программист
Задача хитрая в том плане, что будет первое время ускользать из рук. Т.е. вам несколько раз придется улучшать логику приложения, пока придете к нужному результату. Но не бойтесь, начните с малого. Базе данных очень важно знать - какие данные вы будете хранить и в каком виде от нее получать. Остальное она все сделает сама.

Поэтому начнем с самого простого - таблицы для хранения самой записи. Таблицу назовем `reg` от слова `registration` (Регистрация). Поле `id` - ключевое. Поле `datetime` - хранит дату и время записи. Поле `info` - произвольная текстовая информация, не длиннее 255 символов.
CREATE TABLE `reg` (
	`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'id записи',
	`datetime` DATETIME NULL DEFAULT NULL COMMENT 'Дата и время записи',
	`info` VARCHAR(255) NOT NULL DEFAULT '' COMMENT 'Текстовая информация о записи' COLLATE 'utf8mb4_unicode_ci',
	PRIMARY KEY (`id`),
	INDEX `datetime` (`datetime`)
)
COMMENT='Регистрация'
COLLATE='utf8mb4_unicode_ci'
ENGINE=InnoDB;


Попробовать повводить данные в таблицу можете здесь, например через программу HeidiSQL:
- сервер: habr.atou.ru
- порт: 3311
- пользователь: habr_95659
- пароль: 9D4z3R4b
- база данных: habr_952563

Если захотите продолжить. Помогу создать следующие таблицы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы