как создать таблицу «Действия моих друзей» для повышения производительности чтения - PullRequest
0 голосов
/ 27 февраля 2012

На социальном веб-сайте я хотел создать таблицу в базе данных sql server для хранения всех действий друзей, которые будут загружаться на страницу, похожую на «Лента новостей» на Facebook, примеры для этих действий:

  • Друг добавил фото
  • Друг изменил фотографию своего профиля
  • Друг понравился фото
  • Друг прокомментировал фото

поэтому я создал следующую таблицу:

Id  uniqueidentifier
UserId  uniqueidentifier -> The friend how did the activity
ObjectId    uniqueidentifier -> entity id which the user did the activity on such as photo id.
Type    int -> Type of the activity
CreatedOn   datetime 
Data    nvarchar(MAX) -> extra data about the object the user did the activity on.

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

1 Ответ

0 голосов
/ 29 февраля 2012

Да, вам нужно выбрать всех друзей для определенного пользователя, а затем присоединиться к этой таблице, чтобы получить действия. Я также рекомендовал бы добавить индекс для идентификатора пользователя, созданного по столбцам, что ускорит обработку

...