设置孩子的祖父母关系

时间:2016-08-07 08:19:48

标签: mysql sql database

我已经构建了一个Web应用程序(PHP / MySQL),供人们预测足球比赛。

  • 对于leagues表中的每个条目,matches表中有许多条目。
  • 对于matches表中的每个条目,predictions表中有许多条目。

我应该明确设置从predictions表到leagues表的关系吗?换句话说,我应该在league_id表中添加predictions列吗?

PRO

查询更简单,在某些情况下可以读取更少的表。查询来自某个联盟的某人预测的示例查询:

SELECT * FROM predictions p
WHERE p.league_id:league_id AND p.user_id=:user_id

没有关系:

SELECT * FROM predictions p
INNER JOIN matches m ON m.match_id=p.match_id AND m.league_id=:league_id
WHERE p.user_id=:user_id

CON

它的数据已经存在,因此它是重复的数据(使数据库更大)。

1 个答案:

答案 0 :(得分:0)

预计数据库的正确规范是避免重复使用以避免使用冗余数据以避免关系。你应该怀疑第二个查询Theproposed和相关模式

SELECT * FROM predictions p
INNER JOIN matches m ON m.match_id=p.match_id AND m.league_id=:league_id
WHERE p.user_id=:user_id