Структура таблицы для ленты активности пользователя - реляционная или нет? - PullRequest
2 голосов
/ 19 января 2011

Так что я застрял на решении:

Я решаю, стоит ли делать что-то подобное для ленты активности пользователя:

id | userID | typeID | contentID | time

ИЛИ что-то более взаимосвязанное с внешними ключами и правильной индексацией, например:

id | userID | postID | postCommentID | photoID | photoCommentID | time

Или в том же духе.

Я ищу ответ, который не просто говорит, какой, но также почему и преимущества / недостатки.


EDIT:

Другое дело, что это относится к , если использовать 1 таблицу комментариев с type | contentID или postID | photoID лучше ИЛИ 2 отдельные таблицы; один для фото-комментариев и один для комментариев ??

РЕДАКТИРОВАТЬ 2:

Как будут использоваться данные:

Может использоваться в 2 сценариях - для отображения в виде строки времени для самих пользователей или окружающих их пользователей.

РЕДАКТИРОВАТЬ 3:

Причиной выбора этого метода для создания каналов активности, даже если вся подробная информация хранится в других таблицах, является скорость при загрузке каналов, хотя я понимаю, что жертвую производительностью записи. Это также позволяет мне добавлять новые типы данных / записей позже и уменьшает количество объединений в моем запросе до 0.

Спасибо за ваше время!

-Stefan

1 Ответ

1 голос
/ 19 января 2011

Когда вы говорите, корма - вы имеете в виду для чужого потребления? Или для хранения чужого корма? Или просто активность человека в вашей системе?

Я бы сначала нормализовал, потом денормализовал, как вам нужно позже, но ни один из ваших вариантов не показывает полную историю того, что вы моделируете.

...