Php 访问表中的社会模式
我有一个(我的)sql表,其中包含有关健身房访问的以下数据:Php 访问表中的社会模式,php,sql,social-networking,Php,Sql,Social Networking,我有一个(我的)sql表,其中包含有关健身房访问的以下数据: gym_visits ( id INT customer_id INT checkin_time DATETIME ) 每位顾客都有一张个人卡,他们用这张卡登记去健身房。我想知道是否有人在多个场合一起去健身房(一起去健身房的朋友),并创建一个社交图。 我认为一个很好的标准是,如果他们在多个(比如说3个)场合相互之间最多5分钟的时间进行登记 最简单的方法是使用php循环遍历所有记录,并在该时间范围内查找所有其他记录,然后创
gym_visits (
id INT
customer_id INT
checkin_time DATETIME
)
每位顾客都有一张个人卡,他们用这张卡登记去健身房。我想知道是否有人在多个场合一起去健身房(一起去健身房的朋友),并创建一个社交图。
我认为一个很好的标准是,如果他们在多个(比如说3个)场合相互之间最多5分钟的时间进行登记
最简单的方法是使用php循环遍历所有记录,并在该时间范围内查找所有其他记录,然后创建一个邻接矩阵,但这需要大量的计算能力和时间。应该有更好的计算方法,但我想不出任何方法。您知道吗?要了解客户是否一天访问一次以上,您可以:
SELECT customer_id, count(*) as numberOfVisits
FROM gym_visits
WHERE checkin_time = <some date value>
GROUP BY customer_id
上面的表结构不会生成社交图,因为它没有定义客户之间的关系。但是可以从该表中找出客户在特定时间间隔内进行了多少次访问,因为该表没有明确定义客户之间的关系,但因为我们知道每个客户的入住时间,所以在一定的小时间跨度内,每次有两个人同时访问时,发生关系的概率更高。我认为用这些数据创建一个图表是可能的。
CREATE TABLE friends
(
customer_id int,
friend_id int
// add other columns as you see fit
)