Я ' Я пытаюсь понять, есть ли какие-либо стандартные подходы к моделированию диапазонов номеров в реляционной базе данных (в данном случае MySQL) и действительно ли это разумно.
Я объясню задачу, которая породила вопрос для контекста.
В настоящее время я занимаюсь разработкой базы данных, которая будет моделировать распределение пула идентификаторов среди клиентов.
Пул потенциальных идентификаторов имеет диапазон от 0 до примерно 2 ^ 30
Данному клиенту может быть назначено любое количество идентификаторов от одного идентификатора до миллионов в нескольких смежных блоках.
Данный идентификатор может быть только быть назначенным одному клиенту (т. е. это отношение «один ко многим»)
Очевидно, что будет таблица клиентов и таблица идентификаторов, содержащая ключ клиента.
Сложность связана с тем, как моделировать идентификаторы:
Первый вариант - иметь строку, представляющую один идентификатор. Это приведет к потенциально огромному количеству строк в таблице, но сделает тривиальным поиск того, кому принадлежит какой идентификатор и используется ли данный идентификатор.
Второй (и я думаю, более многообещающий) вариант - иметь строку, представляющую диапазон значений с минимальным и максимальным значением. Это сделало бы запросы немного более сложными (я предполагаю, что запрос для проверки того, использовался ли идентификатор, будет заключаться в запросе диапазонов с «Минимум ниже X» и «Максимум выше X»), но приведет к меньше строк и, вероятно, будет проще управлять и обновлять.
Я приветствовал бы любые мнения о том, является ли это хорошим подходом, а если нет, есть ли очевидный лучший подход, который мне не хватает.