Как добавить «счетчик» между двумя таблицами - PullRequest
0 голосов
/ 28 октября 2018

Допустим, у меня есть таблица с именем blog posts, которая содержит информацию о сообщениях в блоге.

enter image description here

И есть еще одна таблица с именем categories, которая содержит только category_name сообщений в блоге.

В этой таблице я добавил строку с именем cat_num, которая должна содержать количество сообщений в блоге с таким же названием категории.В общем, это своего рода счетчик:

enter image description here

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

1 Ответ

0 голосов
/ 28 октября 2018

Как правило, вы должны получить число blog_posts в categories, выполнив

SELECT COUNT(*) FROM blog_posts WHERE blog_category = [id]

Где [id] - идентификатор в таблице категорий.

Это отношение one to many: у одного categories может быть много blog_posts.

Нет смысла хранить число blog_posts в таблице categories, так как вы можете легко рассчитать эти данные из таблицы blog_posts.

Однако, если вы хотитеblog_posts запись для нескольких категорий, я думаю, что вы должны использовать третью таблицу, подобную этой:

В blog_posts у вас будет что-то вроде id, img, author, title, body в categories, у вас будет id, name, а затемвы можете использовать таблицу типа categories_blog_posts с id, blog_post_id, categorie_id

Затем вы можете получить число blog post определенных категорий, выполнив что-то вроде:

SELECT COUNT(*) FROM categories_blog_posts WHERE categorie_id=[categories.id]

Это будет many to many отношение: categories может иметь много blog_posts, а blog_posts может иметь много categories

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