【发布时间】:2014-10-15 07:04:01
【问题描述】:
我正在尝试构建类似 Instagram 的应用,但不知道如何计算每张照片的点赞数。
选项 1:
user Table
- user_id
- username
...
photo Table
- photo_id
- user_id
- image_path
...
photo_like_relation Table
- like_id
- photo_id
- user_id
...
因此,通过此设置,我将能够在计算类似查询的结果后检索类似计数。
"SELECT * from photo_like_relation WHERE photo_id = x"
选项 2:
user Table
- user_id
- username
...
photo Table
- photo_id
- user_id
- image_path
- like_count **
...
photo_like_relation Table
- like_id
- photo_id
- user_id
...
使用选项 2,我将如何检索 like_count,但我觉得如果系统中有任何失误,这可能会变得混乱? photo_like_relation 的 like_count 总数与 COUNT() 总数可能不匹配?
那么哪种方法更好呢?还是有更好的方法?假设应用中发布了数百万张照片/点赞。
我正在尝试重新创建一个流行的页面功能,例如 Instagram,它基本上会从最后 X 分钟获取最多喜欢的照片。我觉得这对系统来说是一个巨大的负担,要遍历过去一小时发布的所有照片,并计算 photo_like_relation 表中存在多少条记录以及相应的 photo_id。
想法?想法?提前致谢。
【问题讨论】: