@doctorcat

Прошу помощь в организации системы записи по дням?

Приветствую, коллеги.

Столкнулся с необходимость сделать систему записи по дням к врачу на прием.
То есть что бы человек мог зайти на сайт понять когда специалист свободен и выбрать время.
В чем собственно сложность, не совсем понимаю каким образом хранить данные и как их правильно структурировать. Что бы в будущем не столкнутся с необходимостью всё переделывать. Вообщем хочу заложить хороший фундамент. Для этого прошу совета более опытных людей.
На этапе примерного макета я вот что набросал но это бред, как по мне. Желательно бы увидеть какие-то уже существующие реализации такого механизма.

{
	"fio": "Юдина Любовь Викторовна"
	years: {
		"2018": {
			days: {
				//тут 365 элементов. столько же сколько и дней
				"day1": {
					time: "12.00"
					pacien: "zalupin vasya"
					problems: "hz"
				}
			}
		}
	}
}
  • Вопрос задан
  • 143 просмотра
Пригласить эксперта
Ответы на вопрос 2
@eternalfire
если делать так, то один объект каким то монструозным получается, нужно несколько документов

1 - врачи
{
  id: 1,
  fio: "Юдина Любовь Викторовна",
  schedule: 1
}
{
  id: 2,
  fio: "Иванов Иван Иванович",
  shedule: 1
}

естественно потом эту сущность можно дополнительными данными забить, типа специализации, часы приёма, сколько дней в неделю и какие на работе и тд

2 График
Можно завести отдельную коллекцию для графиков работ
{
  id: 1,
  begin: Date,
  end: Date,
  days: ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
}

где как раз есть время начала и окончания рабочего дня и сами дни работы

Так же можно добавить отпуски выходные и так далее, что угодно

Можно также её объединить с сущностью врач, но это кому как нравится

3 - Запись о посещении
{
  id: 1,
  pacient: "zalupin vasya",
  problems: "hz",
  time: "12:00",
  specialist: 2,
  date_create: '2016-05-18T16:00:00Z'
}
{
  id: 2,
  pacient: "Vasya",
  problems: "hz",
  time: "12:00",
  specialist: 2,
  date_create: '2016-05-18T16:00:00Z'
}


Ключ специалист содержит ссылку на врача из документа 1, а по ключу date_create можно формировать выборку

А так формировать данные как вы хотите, это вообще не правильно)
Ответ написан
customtema
@customtema
arint.ru
Сетка нужна. Какое-то решение о рабочем времени, делящимся на "окна".

Перед добавлением записи проверять наличие "окошек". При добавлении - проверять, что оно происходит именно в свободное "окно".

Предусматривать в БД по строке на каждое окно не обязательно. Разделите задачу на интерфейс, визуализацию (в соответствии с принципом окон, учитывая время приема и т.д., учитывая уже занятые "окна") и саму запись. Тогда все будет просто, тривиально.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы