управление идентификаторами для таблиц базы данных с временными записями - PullRequest
0 голосов
/ 19 июля 2011

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

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

Поэтому вопрос.Есть ли какой-нибудь механизм с MySQL или другой базой данных для получения идентификаторов циклов или любого другого решения для решения этой проблемы с хорошей производительностью?

Кстати.это в контексте приложения Ruby on Rails.Я думал о том, чтобы иметь вложенные идентификаторы, то есть сделать запись уникальной для user_id и user_entry_id.Но я не знаю, насколько хорошо этот подход поддерживается рельсами.

Правка: я вижу, что должен был сделать некоторые расчеты относительно вероятности того, что диапазон идентификаторов закончится в ближайшее время.Я думаю, мне не нужно беспокоиться об этой проблеме в ближайшее время.Все еще счастлив, если люди могут сообщить о своем опыте, связанном с этими проблемами.Если у кого-нибудь были проблемы с этим ....

Ответы [ 2 ]

0 голосов
/ 19 июля 2011

Я бы посмотрел на использование UUID http://www.rubyflow.com/items/5717-uuid-primary-keys-with-activerecord-in-rails-3

0 голосов
/ 19 июля 2011

Да, вы хотели бы создать составной ключ, как заявил Д.Н., вот еще один пост, который объясняет, как это работает / почему вы этого хотите. (Этот пост написан на SQL-сервере, но MySQL практически такой же.

Зачем использовать несколько столбцов в качестве первичных ключей (составной первичный ключ)

RoR поддерживает несколько столбцов первичного ключа. Это очень распространенная практика работы с базами данных. (вам действительно нужно расширение)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...