我正在制作一个简单的社交媒体应用。我正在存储与json字段类型中的帖子相关的所有注释和喜欢,这样我只需要执行单个查找来获取它们(我的数据库是关系的,否则)。
我正在考虑一个“新闻源”页面加载时间,它一次抓取25个帖子。如果在将来,如果某个帖子有数百或数千条评论,其中一些评论相当长,则可能需要从数据库中获取大量数据,特别是如果这些帖子中有几种。< / p>
从本质上讲,我在第一次加载时需要知道的最多的是:喜欢的总数,评论的总数,喜欢它的一个用户以及评论的一个用户。如果他们想要更多,我可以稍后使用ajax调用查询其余内容。
存储json数据的我的字段(post_interactions)如下所示:
{"likes": ["bob", "james"], "comments": ["one", "two", "three"]}
我怎么想我想要查询:
SELECT
user,
id,
created_at,
post_interactions->"$.likes[0]",
post_interactions->"$.comments[0]",
JSON_LENGTH(post_interactions->"$.likes") AS LikeCount,
JSON_LENGTH(post_interactions->"$.comments") AS CommentCount
FROM user_posts
WHERE id = "id"
我想知道这个查询是否是大规模有效的,或者是否有更好的方法来解决这个问题(我使用json字段类型的事实已经设置,只是更好的方法来处理它鉴于这一事实)。
感谢您的帮助!