Идентификатор записи в БД: Целое число против UUID

Для нас ответ на вопрос «что же использовать в качестве идентификатора записей в БД?» уже давно не стоит, за явным преимуществом победил UUID. Эта небольшая заметка о причинах, послуживших причиной к отказу от использования целого числа в качестве идентификатора. Впервые отказаться от целочисленного идентификатора пришлось при работе над проектом Dodo IS (Информационная система Додо пиццы), …

Индексы в реляционных БД на пальцах

Рассмотрим какова же роль индексов в реляционных БД на двух примерах не из ИТ области. Думаю, что многие бывали в регистратурах больниц. Представьте себе, что медицинские карточки людей хранились бы на полках в абсолютно произвольном порядке, где нашлось свободное место, туда и положили. А теперь представьте сколько времени сотрудница регистратуры искала бы вашу карточку при …

Хранение истории состояний в реляционной БД

Хранение истории состояний является достаточно часто встречающейся задачей. Например, вам нужно хранить информацию, когда заказ перешел в тот или иной статус. Пример списка возможных статусов: Ожидает приготовления, готовится, ожидает доставки, доставляется, завершен. Для решения этой задачи мы применяем 2 подхода, которые внутри нашей команды условно называются «горизонтальная запись» и «вертикальная запись». Горизонтальная запись Горизонтальную запись …

Создание алгоритма маршрутизации для сервиса доставки воды

На проекте по доставке воды перед нами была поставлена задача автоматизировать распределение заказов между фиксированным количеством автомобилей. Критерием эффективности решения являлось не только минимальное суммарное расстояние, но равномерность загрузки автомобилей. В качестве дополнительного ограничения выступало скорость работы алгоритма, так как она влияла на некоторые бизнес-процессы. Также необходимо было масштабирование — возможность распределять заказы не в …

Хочу свою Додо ИС, сколько будет стоить и сколько времени займёт?

Приблизительно такой вопрос мне задают бизнесмены. Сложно дать ответ, потому что программистам нужно техническое задание, чтобы точно ответить, а вы его не предоставляете (у нас даже родилась такая поговорка: «Хочешь избавиться от заказчика — пошли его писать ТЗ»). Но за последние годы уже пришло понимание, чего хотят бизнесмены, поэтому попробую помочь вам даже без технического …