我有一个表格
现在我的问题是哪种方法更好。我想出了两个解决方案(不确定解决方案2是否可行,尚未尝试)。
解决方案1 首先选择字段
解决方案2 使用
topics
。我有两个查询,一个是从表格votings
中选择不同的数据,另一个是从表格messages
中选择不同的数据。topics
有一个字段m_group
,它是messages
的外键。这个字段可以是NULL
或者是messages
条目的一个组(group
是这个表格中的一个字段)。如果这个字段被设置为一个组,它应该执行查询1来选择所有的消息,如果没有设置,则应该执行查询2来选择特定主题的所有投票。我使用Postgres和PHP在Apache Web服务器上。现在我的问题是哪种方法更好。我想出了两个解决方案(不确定解决方案2是否可行,尚未尝试)。
解决方案1 首先选择字段
m_group
。然后通过PHP确定是否设置,并执行相关的查询。解决方案2 使用
IF THEN ELSE
语句。
基本上,查询应该看起来像这样:IF t.m_group IS NULL
THEN
query2
ELSE
query1
如前所述,我不确定解决方案2是否可行。最好的处理方式是什么?解决方案1执行了两个查询,我认为这是低效的。
更新
如上所述,它应该针对特定主题执行查询。您有此主题的id
。在解决方案2中如何指定此项?如果在查询中指定了别名t
,IF THEN ELSE
语句是否已知?
id
、title
和SUM(subtable_id) AS votes
。这也意味着votings
和messages
两个表都有子表来存储其他数据。 - Ian Fako