如何在两个表之间添加“计数器”

时间:2018-10-28 14:15:41

标签: php mysql database-design

比方说,我有一个名为blog posts的表,其中包含有关博客文章的信息。

enter image description here

还有另一个名为categories的表,其中仅包含博客帖子的category_name

在此表中,我添加了一个名为cat_num的行,其中应包含具有相同类别名称的博客文章数。所以基本上是一种计数器:

enter image description here

所以我的问题是如何在这两个表之间添加这种类型的关系。能否请您提供一些提示...

1 个答案:

答案 0 :(得分:-1)

基本上,您应该通过执行

来获得blog_postscategories的数量

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

[id]是类别表中的ID。

这是一种one to many关系:一个categories可以有多个blog_posts

blog_posts表中存储categories数没有意义,因为您可以从blog_posts表中轻松计算出该数据。

但是,如果您希望blog_posts条目具有多个类别,我认为您应该使用像这样的第三个表:

blog_posts中,您将在id, img, author, title, body中拥有categories之类的东西,然后可以将{{1} }}

那么您可以通过执行以下操作来检索特定类别的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