Хорошо, значит, я хочу иметь возможность комментировать каждый мой пост.Комментарии будут иметь кнопку ответа для каждого.Это не многопоточность, поэтому один комментарий будет иметь много ответов.Эти ответы не будут иметь ответов.Также я хочу иметь возможность понравиться и не понравиться комментарий / ответ.Все это не будет привязано к пользовательской модели или любой другой.Публичные посетители смогут добавлять комментарии и отвечать на комментарии, но требуется одобрение.
Так вот логика, которую я получил до сих пор.Я на правильном пути (надеюсь, что этот пост может помочь кому-то еще):
Итак, я создаю Comment
модель.А затем создайте таблицу с именем comments
.И я создаю модель с именем Reply
и таблицу с именем replies
И, наконец, имя модели Like
и ее таблицу likes
Таким образом, соотношение: comments
будет иметь множество replies
и replies
принадлежит одному comment
replies
& comments
будет иметь много likes
.
А теперь по логике:
Я буду использовать AJAX для вызова функции store на CommentController
для хранения комментариев.И я вызову функцию сохранения на ReplyController
, чтобы сохранить ответы.Что касается лайков, функция LikeController
store будет хранить лайки для комментариев и ответов.
Вот структура таблицы:
Таблица комментариев
- id
- post_id
- name
- электронная почта
- комментарий
- одобрен
- timestap
Таблица ответов
- id
- comment_id
- имя
- электронная почта
- комментарий (или ответ)
- утверждено
- отметка времени
Таблица лайков
- id
- comment_id
- reply_id
- like
- нелюбовь
- отметка времени
Теперь я не понимаю, нравится таблица.Правильно ли иметь comment_id
и reply_id
, а также like
и dislike
?Я мог бы вызывать функцию store каждый раз, когда кто-то нажимает кнопку «Мне нравится» или «не нравится», и сохранять ее в таблице и обновлять столбец, если он является ответом или комментарием по его id
, к соответствующим столбцам id.Правильна ли логика?
Кроме того, если у вас, ребята, есть какие-либо предложения или лучший и эффективный способ сделать это, пожалуйста, дайте мне знать.Это слишком долго, поэтому я просто оставлю это здесь.
Редактировать
Также забыл упомянуть, что я не уверен, как я буду переносить количество лайков из БД в клинок и считать его.Не с текущей структурой, упомянутой выше.Также как проверить и посмотреть, понравился ли уже человек.И если так, не позволяйте им снова нравиться или не нравиться.Любимый человек не может не любить.Они могут сделать только одно.