dazle
@dazle
Хороший электрик, но в душе программист

Можно ли сделать бан лист для сайта, чтобы другие пользователи не могли отправлять личные сообщения вам?

Могу ли я создать одно поле у каждого пользователя и заносить туда все id пользователей, которые в бане, а потом проверять при отправке личных сообщений, есть ли они у вас в бане. Если есть у вас бане, то не отправлять сообщение.
Проблема в том, как заносить все id в одно поле, а потом это поле проверять на присутствие этого id. Напишите, кто сталкивался с занесением многих значений в одно поле таблицы и как сделать нахождение этого значения из многих в одном поле.
Если есть другие варианты бана, тоже пишите.
  • Вопрос задан
  • 139 просмотров
Решения вопроса 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
В таблице пользователя добавляем поле: chatOnlyWithFriends: true/false.
Если true - шлём только тем, кто в списке друзей.
Если false - проверяем: кто в бане у пользователя и исключаем их из общего списка. Отправляем всем за исключением забаненных у пользователя.

Таблица банов ("многие-ко-многим"):
id, initUserID, bannedUserID
Проверяете по ней: кто кого забанил и решаете: отправляем или нет.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@granty
Я так понял, он хочет, чтобы каждый пользователь имел свой чёрный список (ban--лист). И мог редактировать его

Гуглите "связь один ко многим". Потребуется отдельная таблица BanList с полями
userID INT      // ID пользователя
bannedID INT    // ID того, кого он забанил

По
SELECT bannedID from BanList WHERE userID='$ID'
можно выбрать ID всех, кого забанил пользователь с userID='$ID'

Используются ID из вашей таблицы реальных пользователей.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы