MySQL: один идентификатор автоматического увеличения для каждой сущности в базе данных

я работаю в социальной сети. С активностью (например, комментарий, подписка, публикация и т. Д.), Пользователем, отслеживаемой страницей, альбомом, фотографией и другими вещами.

Теперь одна из самых важных вещей в социальной сети - это лента активности. У меня есть структура с таблицей activity_feed, user_table, follow_table, like_table и т. Д. Я подумал: что, если я использую уникальный AUTO INCREMENT для идентификации каждой отдельной сущности в моем приложении?

Пример:

Пользователь присоединяется к моему сайту путем регистрации:

  • Добавьте активность в activity_feed (и получите идентификатор)
  • Добавить пользователя в user_table (с внешним ключом в activity_feed)

Пример 2:

Пользователь загружает фото:

  • Добавить активность в activity_feed
  • Добавить фотографию в таблицу фотографий (с внешним ключом)

Это упростит вызовы API (например, http://api.domain.com/ID), УДАЛЕНИЕ сущностей , будущее совместное использование баз данных и многое другое.

Я заметил, что у facebook есть такая структура. Очевидно, что индексирование может быть выполнено в других таблицах (например, activity_index_type с activity_type -> user и activity_id).

может быть хорошим решением?

Извините за мой английский! : $


person Monte    schedule 03.05.2013    source источник


Ответы (1)


Это концепция глобального уникального идентификатора (GUID). В MySQL есть функция для их создания: UUID () < / а>. А вот предложение по SO для хранения GUID

person Andrew    schedule 03.05.2013
comment
Я знаю GUID, но хочу знать, может ли быть полезным использование INT с этим методом? Спасибо! - person Monte; 04.05.2013
comment
Ответ, на который я ссылался в своем ответе, предлагает использовать CHAR(16) binary. Вот ссылка снова. stackoverflow.com/ questions / 412341 / - person Andrew; 05.05.2013