Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Как нам теперь понять, на каком шарде лежит объект? По диапазону? Дополнительная сущность.
Какого типа объект? По диапазону? Еще одна сущность.
А если у вас в системе есть короткоживущие объекты — они все равно будут поедать емкость из общего множества идентификаторов?
А если у вас есть объекты с естественными идентификаторами — для них все равно заводить искусственный и поддерживать две уникальности?
А если у вас есть связи, у которых «естественный» ключ — составной, с ними как поступать?
И мы можем идентифицировать сущность по атрибутам, только если мы специально вводили для нее ключ в качестве атрибута — тот же номер счета.
С этой точки зрения нет разницы, использовать для идентификации этот уникальный атрибут, или внутренний дополнительный.
Кроме адресации, из плюсов мне пришли в голову примерно такие:
— Без проблем можно перенести данные между таблицами при рефакторинге
— Отображает последовательность создания объектов
— Меньше ресурсов требуется на создание ID для новой записи (по сравнению с guid)
Ну таблицы-то никуда не деваются. Просто немного меняется способ генерации ключа.
А если не бывают, и если мы не хотим тратить на них идентификаторы, можно завести для них отдельную последовательность.
Ну и технические причины есть, по числовому идентификатору искать быстрее, чем по 20-символьной строке с номером счета.
А если у вас есть связи, у которых «естественный» ключ — составной, с ними как поступать?
Здесь я пожалуй у вас спрошу, как у более опытного. Можете привести пару примеров?
Снова про AUTO_INCREMENT