У меня есть эти модели (таблицы): USER
, PHOTO
, BOOK
, QUESTION
и т. Д.
И теперь я хочу добавить на сайт функцию favorite
или like
, то есть пользователь может «любить» некоторые фотографии, книги или вопросы, и, конечно, фотография может понравиться многим пользователям.
Поэтому я хочу спросить вас, как реализовать такие вещи.
страница для отображения книг, фотографий, квестов и т. Д., Которые нравятся текущему пользователю;
сколько людей любит книгу.
Вот мои мысли, изложите это просто.
A
таблица: books_users
book_id user_id
таблица: photos_users
photo_id user_id
таблица: questions_users
question_id user_id
B
таблица: users_likes
object_id user_id type
В столбце «type» хранится информация «book», «photo».
А или Б?
Что действительно беспокоит меня, так это то, что в ООП мы пытаемся создать отношения наследования между объектами, которые содержат одно и то же. Но в реляционной базе данных, это хорошо, чтобы держать вещи в одной таблице (план B) или держать их отдельно (план A). У меня нет большого опыта в разработке БД, поэтому, пожалуйста, расскажите мне плюсы и минусы