Представление диапазонов чисел в реляционной базе данных (MySQL)

Я ' Я пытаюсь понять, есть ли какие-либо стандартные подходы к моделированию диапазонов номеров в реляционной базе данных (в данном случае MySQL) и действительно ли это разумно.

Я объясню задачу, которая породила вопрос для контекста.

В настоящее время я занимаюсь разработкой базы данных, которая будет моделировать распределение пула идентификаторов среди клиентов.

Пул потенциальных идентификаторов имеет диапазон от 0 до примерно 2 ^ 30

Данному клиенту может быть назначено любое количество идентификаторов от одного идентификатора до миллионов в нескольких смежных блоках.

Данный идентификатор может быть только быть назначенным одному клиенту (т. е. это отношение «один ко многим»)

Очевидно, что будет таблица клиентов и таблица идентификаторов, содержащая ключ клиента.

Сложность связана с тем, как моделировать идентификаторы:

Первый вариант - иметь строку, представляющую один идентификатор. Это приведет к потенциально огромному количеству строк в таблице, но сделает тривиальным поиск того, кому принадлежит какой идентификатор и используется ли данный идентификатор.

Второй (и я думаю, более многообещающий) вариант - иметь строку, представляющую диапазон значений с минимальным и максимальным значением. Это сделало бы запросы немного более сложными (я предполагаю, что запрос для проверки того, использовался ли идентификатор, будет заключаться в запросе диапазонов с «Минимум ниже X» и «Максимум выше X»), но приведет к меньше строк и, вероятно, будет проще управлять и обновлять.

Я приветствовал бы любые мнения о том, является ли это хорошим подходом, а если нет, есть ли очевидный лучший подход, который мне не хватает.

12
задан Nick Long 3 May 2011 в 11:40
поделиться