gpt4 book ai didi

asp.net - 在 asp.net mvc 中实现 "follow person, post"特性

转载 作者:行者123 更新时间:2023-11-30 05:29:43 24 4
gpt4 key购买 nike

在任何社交网络中,你可以关注一个人、一个帖子或任何东西,你关注的所有内容都会显示在你的墙上,现在我想在 asp.net mvc 中实现相同的功能,但我在设计表上遇到问题查询用户的所有后续事物。这是我设计的表格:

 [User(id,name,email,password)] [Following(id,personId,followingId,source)] [Post(id,title,description,authorId)]

所以当一个用户关注其他用户时,一条新记录将推送到以下表中,followingId 是 userId,source 是“User”表,就像关注一个帖子一样,followingId 是 postId,source 是“Post” table 。问题是当从您关注的内容中获取数据时,如果用户关注的内容多于帖子和其他用户(例如标签、主题...),则查询连接许多表以返回结果。这将不是很好的性能和查询时间来将数据返回给用户。你有什么想法吗?非常感谢听到您的解决方案,非常感谢!

最佳答案

您的数据库设计存在缺陷,而不是一个带有字符串的“链接”表来标识“跟随的事物”所在的位置,这使得难以有效查询。

相反,每个链接的事物都需要一个链接表。所以在你的简化示例中你可能有

[User(id,name,email,password)]
[Post(id,title,description,authorId)]
[UserFollowingUser(id, userId, followedUserId]
[UserFollowPost(id,userId,postId)]

因此,要让所有用户都关注一个帖子,或者让所有帖子都被一个用户关注,或者让所有用户都关注一个特定用户,或者让所有用户都关注一个特定用户,这很容易。

关于asp.net - 在 asp.net mvc 中实现 "follow person, post"特性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6743858/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com