CakePHP позволяет пользователям добавлять других пользователей в друзья и группировать их - PullRequest
1 голос
/ 11 сентября 2011

Я создаю систему друзей в CakePHP для пользователей на основе этого: Добавьте функцию друга в CakePHP

Но мне нужно добавить две дополнительные функции:

1.) Пользователи должны иметь возможность запрашивать и подтверждать / отменять запросы на добавление в друзья

2.) Пользователи должны иметь возможность группировать друзей, например, друзей, семью, коллег и т. Д.

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

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

ПРИМЕЧАНИЕ. Я задавал аналогичный вопрос ранее ипришлось удалить его, так как все неправильно поняли вопрос.Я задаю вопрос точно так же, как упомянутый выше, и надеюсь получить ответы, такие же, как у них, с точки зрения таблиц и отношений.

1 Ответ

1 голос
/ 11 сентября 2011

Вам понадобится поле в таблице базы данных отношений, которое называется подтвержденным или аналогичным. В основном, когда запрашивается дружба, создается запись, но с подтвержденным значением, равным 0. Когда «запрашивающий» принимает дружбу, подтвержденное поле устанавливается равным 1 или, если отклонено, запись удаляется (что позволяет запрашивающему снова запросить дружбу). ).

Для группировки вам, очевидно, понадобится таблица групп с полем ID и неуникальным именем, а также таблица groups_relationships с двумя столбцами: relationship_id и group_id. Это позволит пользователю поместить друга в группу. Затем вы можете запросить таблицу groups_relationships с помощью group_id, чтобы найти идентификаторы друзей, которых участник поместил в эту группу.

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