Как будет выглядеть базовая структура базы данных для личных сообщений пользователей? - PullRequest
3 голосов
/ 06 февраля 2012

Я использую Rails 3.2 (не вопрос ruby ​​on rails) и приближаюсь к концу проекта, над которым я работал.Прямо сейчас я создаю функцию личных сообщений пользователя.

Я следил за http://www.novawave.net/public/rails_messaging_tutorial.html#start, но некоторые вещи не имеют никакого смысла, некоторые вещи не работают .. скорее всего, потому чтоэта версия ROR устарела.

Сейчас я собираюсь сделать это сам, но мне нужна помощь, чтобы начать.Я иду по кругу, пытаясь выяснить, как лучше всего это реализовать.

У меня уже есть что-то похожее .. "публикация на стене", где несколько пользователей могут комментировать 1 запись на стене в теме, как мода,При этом, хотя, если оригинальный пост на стене будет удален, тогда все комментарии будут тоже.

С моей системой обмена сообщениями я бы хотел, чтобы это было просто с помощью папки «Входящие».Пользователь увидит отправленные и полученные им сообщения, упорядоченные по дате отправки.Я хочу, чтобы пользователи имели возможность удалять свои сообщения без удаления других.

Что я думаю

- Я думаю, как достичьэто 2 копии сообщений.

-1 для пользователя A (отправитель) и 1 для пользователя B (получатель), так что они могут независимо управлять сообщениями, не затрагивая другого пользователя.

До сих пор я думал о наличии 3Таблицы:

  1. Сообщения

  2. Копии сообщений

  3. Папки (при этом будет храниться строка для каждого пользователякоторый создается при регистрации автоматически, а затем, когда они получат сообщение, они будут ..... act_as_tree ... ?? .... эм ... голубые звезды ?? ..... боль в спине .. (мой разум начинает блуждать) ..

и вот тут у меня начинает болеть голова. Я чувствую, что понятия не имею, что я пытаюсь сделать, хотя я и делаю. Когда ячувствую, что да, я думаю, что у меня есть это сейчас, я встречаю кирпичную стену.

Решение

Я надеялся, что кто-нибудь, кто внедрил такую ​​функцию, сможетчтобы предоставить мне информацию для таблиц в базе данных, мне нужно добиться того, чего я намерен достичь. Я на 100% знаю, что могу это сделать, но мне просто нужно начать с начала.как самое большое препятствие с тех пор, как я начал этот проект.

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

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

С уважением

1 Ответ

2 голосов
/ 06 февраля 2012

Как насчет одной таблицы для сообщений и одной таблицы для получателей сообщений? В таблице ответов у вас может быть столбец «что делать с этим сообщением» и параметры «сохранить, ответил, удалить (не показывать), удалить (показать)» и т. Д. Затем вы можете присоединиться к этому, чтобы получить заботится ли данный получатель о том, что происходит с этим сообщением.

Создание нескольких копий сообщения кажется излишним.

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