我目前正在开发一个应用程序,允许学生管理他们的课程,我真的不知道如何为特定功能设计数据库.客户想要像Facebook一样,当学生显示当前在特定课程中的人员列表时,首先显示与登录用户具有最多相互课程的人.与Facebook功能几乎相同的"朋友建议"带有额外的过滤器.
作为一项附加功能,我想添加一个搜索功能,以允许学生搜索另一个功能,并在搜索结果中首先显示与登录用户具有最多相互课程的人.
我目前使用MySQL,我计划使用Cassandra来实现其他功能,我还使用Memcached进行结果缓存和Sphinx进行搜索.
谢谢.
-
该应用程序是用Python,BTW开发的
我忘了提到标准方法(使用一个很好的MySQL查询用ORDER BY子句计算所有这些)是太慢了.因为读取比读取更频繁,我希望大多数逻辑发生一次,当人们< - >当然添加关系时.
我考虑更新一个特定于一个元组(用户,课程)的"相互课程"计数器,当登录用户加入新课程时(或者当他离开时减少),该计数器将为课程的所有用户增加.