@kablihin

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

Есть 3 таблички:
1. Пациенты
{
    id: 'uuid',
    phone: '+7 913 743 24 35',
    name: 'Иван',
    email: 'ivan@example.com',
    gender: 'male'
    ...
}

2. Доктор
{
    id: 'uuid',
    name: 'Сергей',
    spec: 'Терапевт',
    price: 2500
}

3. Расписание.
{
    id: 'uuid',
    doctor_id: 'uuid',
    date: 'date',
    time_from: 'timestamp',
    time_to: 'timestamp',
    is_free: boolean, // свободен ли слот для записи
    patient_id: 'uuid',
    type: int // 0 - первичный приём, 1 - повторный
    
}

В расписание находятся слоты расписания. У каждого врача всё рабочее время должно быть поделено на эти слоты. Для простоты можно считать, что все врачи работают по будням с 9:00 до 21:00, а все слоты имеют длительность 30 минут.

Вопрос как сделать так, чтобы при добавлении нового врача, для него автоматически создавались эти слоты на какой-то промежуток времени?
  • Вопрос задан
  • 400 просмотров
Решения вопроса 1
Adamos
@Adamos
Хранить в слотах только реальную запись, логику расписания вынести в шаблоны, доктору назначается один из шаблонов, определяющий, когда у него должны быть слоты. Исчезает необходимость заваливать таблицу слотов пустыми данными.
Скорее всего, потребуется таблица реального расписания врач - день - шаблон. И, возможно, меташаблоны, определяющие расклад шаблонов на пару недель.
Возможно, стоит проработать эту схему глубже, добавив в логику кабинеты приема... тут реально нужно погружаться в предметную область, "сделать просто" в данном случае однозначно означает "сделать нежизнеспособно".
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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