Нужны предложения, чтобы получить уникальные индексные ключи для двух или более таблиц в mysql

Обычно я использую атрибут auto_increment, чтобы получить уникальный ключ/идентификатор для каждой строки в одной таблице для использования в качестве первичного индекса. Теперь у меня есть две таблицы, и, к сожалению, auto_increment не может создать новый ключ, используя последний идентификатор/ключ в другой таблице, чтобы все ключи/идентификаторы были уникальными в обеих. Если я буду использовать auto_increment для обоих столбцов индекса, возможность иметь два одинаковых идентификатора гарантирована! Есть простой способ сделать это?


person oldsparky    schedule 01.01.2011    source источник
comment
Почему вы хотите это сделать? Звучит как дизайн базы данных, который можно оптимизировать...   -  person thejh    schedule 02.01.2011
comment
Может быть, я попытаюсь объяснить проблему лучше. Эти две таблицы содержат два типа вставки в основной документ: один двоичный и один текстовый. Когда подпрограмма sw показывает весь документ, она извлекает его из таблицы документов, а затем всю вставку из двух таблиц. После запроса соединения единственным способом узнать, что такое вставка, является ее идентификатор/ключ. Невозможно узнать, из какой таблицы пришла вставка, если я не поставлю другой идентификатор, чтобы отличить двоичный код от текстового.   -  person oldsparky    schedule 02.01.2011


Ответы (2)


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

person Peter Eisentraut    schedule 01.01.2011

Если у тебя есть:

  • таблица A с идентификаторами 1,2,3.
  • таблица B с идентификаторами 1,2,3.

Тогда у вас уже есть следующие (виртуальные) уникальные идентификаторы:

  • A1, A2, A3, B1, B2, B3

Вам не нужно вносить никаких изменений в вашу базу данных. Это чисто презентационный вопрос.

person Mark Byers    schedule 01.01.2011
comment
Разделяю на две таблицы только для разного содержания данных. Я начинаю думать, что это была плохая идея. - person oldsparky; 02.01.2011