Я хочу создать уникальный идентификатор базы данных. Этот уникальный идентификатор должен быть одним полем каждой строки в каждой таблице этой базы данных.Поддерживать уникальный идентификатор для нескольких таблиц
Есть несколько подходов я рассмотрел:
Создать один мастер-таблицу с автоматическим приращением поля и триггером в любой другой таблице, например:
«перед вставкой здесь , вставить в мастер-таблицу -> получить значение автоматического увеличения -> и использовать это значение в качестве первичного ключа здесь »
Я видел это раньше, но вместо того, чтобы делать один INSERT, он делает 2 INSERTS, которые я ожидайте, что это не будет выполнено.
Добавить поле
uniqueId
к каждой таблице и заполнить это поле с помощью генерируемого PHP целого числа ... что-то вроде unix-timestamp плюс случайное число.Но я должен был использовать
BIGINT
как тип данных, что означает большойindex_length
и большойdata_length
.Подобно идее «UniqueID», но вместо внесения
BIGINT
я используюVARCHAR
и использоватьuniqid()
для заполнения этого значения.
Какова цель уникального идентификатора базы данных? Если каждая таблица имеет первичный ключ, то каждая строка уже имеет уникальный идентификатор, состоящий из tablename.pkey. – dnagirl
Это ужасная, ужасная идея и может привести только к боли и страданиям. –
Я думал об этом несколько раз, для таких вещей, как создание (почти) каждого элемента на странице, комментируемое или даже для оценок по каждому элементу. Я всегда думал, что это упростит ситуацию. @Ignacio: им не говорится об использовании этого в качестве первичного ключа, если вы так считаете. Почему вы думаете, что уникальный идентификатор через несколько таблиц - это плохо? –