Поскольку вы ищете мнения ... Из трех идей, которые вы даете, я бы "проголосовал" за решение uniqid()
.Кажется, это довольно низкая стоимость с точки зрения выполнения (но, возможно, не реализации).
Более простым решением (я думаю) было бы просто добавить поле в каждую таблицу для хранения guid и установить значение по умолчаниюполе, чтобы быть функцией MySQL, которая генерирует guid (я думаю, что это UUID).Это позволяет базе данных выполнять всю работу за вас.
И в духе выдвижения случайных идей ... Можно было бы иметь какой-то автономный процесс, который асинхронно заполнял бы идентификаторы.Убедитесь, что в каждой таблице есть соответствующее поле, и установите значение по умолчанию 0 / пусто.Тогда автономный процесс может просто выполнить запрос к каждой таблице, чтобы найти строки, которые еще не имеют уникального идентификатора, и заполнить их. Это позволит вам контролировать идентификатор и даже использовать какое-то возрастающее целое число.Это, конечно, требует, чтобы вам не требовался уникальный идентификатор сразу при каждой вставке записи.