0

我有这些数据应该输出到他与之交互的相应数量的社交媒体。

4 个交互,分别是fblike_point、fbshare_point、tweet_point 和 follow_point

所以比方说,从下面的数据来看,我已经与fblike_pointtweet_point进行了交互。

在此处输入图像描述

所以我想做的是,自从我与 fblike_point 和 tweet_point 交互后,它应该输出 2 次。

输出:

2013-05-14 | fblike_point

2013-05-14 | 推文点

如果我交互 4 次,它应该输出 4 次与他进行的相应社交媒体交互。

好吧,我可以设法做这些事情,但是,这就像冗余,例如,我在PHP中使用 mysql 查询来选择数据:

SELECT date_participated, fblike_point FROM table WHERE fblike_point = 1
SELECT date_participated, fbshare_point FROM table WHERE fbshare_point = 1
SELECT date_participated, tweet_point FROM table WHERE tweet_point = 1
SELECT date_participated, follow_point FROM table WHERE follow_point = 1

那么有没有其他方法可以有一个简短的方法或其他东西?

4

1 回答 1

2

如果我交互 4 次,它应该输出 4 次

使用您的数据模式,您要么需要引用的四个不同的查询,要么需要UNION超过这些查询。

这就像冗余

多余的,因为您的架构的组织方式。如果您希望能够以相同的方式处理这些不同的交互(这很有意义),那么您需要一个额外的表来处理这些交互,其中一列标识它所指的原始表的行,另一列ENUM标识社交媒体的列(可能是一种类型)。两者一起构成该表的主键。

然后,您可以VIEW从看起来就像您现在的表一样的实际表创建一个。这样,您可以保持与现有查询的兼容性,并且仍然为您需要它们的情况提供更灵活的查询。

于 2013-06-13T08:22:11.713 回答