Мне интересно, как лучше всего настроить ключи для таблицы, содержащей данные потока активности. Каждый тип деятельности будет иметь разные атрибуты (с некоторыми общими). Вот пример того, из чего будут состоять некоторые предметы:
Последующее действие:
- тип
- ID пользователя
- отметка времени
- follower_user_id
- followee_user_id
Комментарии
- тип
- ID пользователя
- отметка времени
- comment_id
- commenter_user_id
- commented_user_id
Для отображения потока я буду запрашивать user_id и упорядочивать по метке времени. Также будут другие типы запросов - например, мне иногда нужно будет запросить user_id AND type, а также такие вещи, как comment_id, follower_user_id и т. Д.
Итак, мои вопросы:
- Должен ли мой первичный ключ быть хешем и ключом диапазона с использованием user_id и timestamp?
- Нужен ли мне вторичный индекс для каждого другого элемента - например, comment_id или без индекса результаты вернутся достаточно быстро? Вторичные индексы ограничены 5, чего было бы недостаточно для всех типов запросов, которые мне нужно будет выполнить.