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

Я проводил некоторые исследования о том, как построить в PHP систему стен, аналогичную FB.

Мы планировали использовать ODM ( Mandango ,MongoDB) вместо обычного ORM (MySQL) для достижения этой цели.Кто-то из моих друзей рассказал мне о входящих / исходящих системах.

  • Входящие - это все сообщения, которые друзья публикуют на вашей стене
  • Исходящие все сообщения, которые вы публикуете

Почему это?Поскольку будет проще, если вы будете следовать за пользователем, вы будете следить только за его « исходящими »

Каждый раз, когда я буду публиковать что-то на своей стене, это сообщение будет дублироваться накаждый из моих последователей (который будет генерировать много данных).Но что делать, когда друг комментирует мой пост?На каком объекте он собирается комментировать мой пост?Мой или его (потому что содержание дублируется)?

Что ты думаешь?Вы уже подумали об этом вопросе?У тебя есть ответы?Спасибо

1 Ответ

1 голос
/ 17 июня 2011

Это все о том, как вы настраиваете свою базу данных. У меня ограниченный опыт работы с MySql, поэтому мой ответ связан с этим. В этой ситуации у меня были бы по крайней мере эти три таблицы:

-Пользователи (с уникальным идентификатором, связанным с каждым)

-Сообщения: сюда входят как входящие, так и исходящие сообщения. Причина, по которой вы можете поместить их все в одну таблицу, состоит в том, что, если вы следуете за кем-то, он будет извлекать только те сообщения, которые имеют (это один столбец) «исходный идентификатор пользователя» и (это может быть другой столбец) «получающий пользователь» id "или что-то подобное. То, как вы обрабатываете данные, будет зависеть от php или asp или от того, что у вас.

-Comments: здесь содержатся все комментарии для всех сообщений и столбец для уникального идентификатора сообщения, к которому он относится.

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

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