在社交媒体应用程序中,用户活动(喜欢帖子,评论和关注用户)必须存储在数据库/类中。在Parse的Anypic tutorial, they implement this storage by combining all of these activities into one table/class called "Activity
"。
如果你不想查看上面的链接,这个模型基本上由一个带有type
字符串的“Activity”对象组成(例如“follow”,“comment”,“like”),指向fromUser
对象的toUser
和User
属性,以及指向相关Post
对象的Post
属性。通过搜索对象的所有Type
和fromUser
属性并将它们与给定类型和用户匹配来获得用户所关注的用户等信息。
当我即将在我的应用程序中实现类似的行为时,Anypic的模型让我觉得特别低效和不可扩展。如果一个应用程序要成长为数千及以上的用户群 - 将所有他们的喜欢,评论和后续内容扔进一个表格 - 在我看来,基本任务(例如找到一个人跟随的用户)将成为非常缓慢,因为它需要筛选大量的物体。
我想到了两种看似更有效的选择:
User
对象;即“关注”栏,“喜欢”栏和“评论”栏有人可以更熟悉数据库并使用这种类型的数据吗?我对Parse数据模型的假设是否错误?这个问题的最佳方法是什么?我相信Parse使用MongoDB(noSQL)。
谢谢大家!
经过几个月的发展,我的问题仍然存在 - 但是我取得了一些进展。目前我将这些课程分开,并且它们运行良好 - 大约有3个用户(而且应用程序还没有活动)。我已经达到了这个问题的答案至关重要的一点 - 我如何处理非常频繁的活动,比如喜欢?我想有一个喜欢的课程会变得非常庞大,因为它是如此常见的活动。我上面提出的方法基本上仍然有效:要么具有“Like
”类,要么将“Liked
”属性附加到User
或Post
对象。如果有人有这种问题的经验,并且可以贡献他们的两分钱,我将非常感激!
答案 0 :(得分:0)
你可以这样: