Как спроектировать отношения между моделями USER и FAVORITE (или LIKE) в БД - PullRequest
0 голосов
/ 28 июля 2010

У меня есть эти модели (таблицы): 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). У меня нет большого опыта в разработке БД, поэтому, пожалуйста, расскажите мне плюсы и минусы

1 Ответ

2 голосов
/ 28 июля 2010

like_model_01

При этом используется отношение супертип / подтип. Еще несколько похожих примеров и объяснений см. Здесь и как создавать таблицы .

...