我有四个桌子

post
-------------
post_id
cat_id
posts

post_category
-------------
cat_id
cat_name

users
-------------
user_id
user_name

user_category_map
-------------
user_id
cat_id


我希望所有帖子类别中的所有用户都添加所有帖子

我已经写了这个查询

 SELECT posts
  FROM post p, users u, user_category_map ucm
 WHERE p.cat_id = ucm.cat_id
   AND ucm.user_id = u.user_id


但我不断重复发帖。我的表结构正确且规范化了吗?我无法正确掌握逻辑。我输入的连接正确吗?

最佳答案

设计看起来不正确。您应该有一个user_post的参考表,而不是user_category的参考表。在当前情况下,如果同一用户添加同一类别的多个帖子,您最终将在user_category_map中重复行

09-11 03:07