我在为用户计算收件箱时遇到此问题:
然后每个小组可以随时更改参与者,因此我需要实时计算某个用户的“收件箱”。
第一个猜测是:计算用户所涉及的所有组,然后在所有DOCS和DOC_ACCESS_BY_GROUP表之间建立连接以获取该用户的所有文档(包含该数据) asociated),然后是另一个联接,以查看是否为用户读取了该文档。
问题是,当我的DOCS表格大幅增长并且我有很多用户和许多群组时...性能非常差。
我正在尝试抽象问题,这实际上有点复杂。每个用户存储文档权限的可能性将被丢弃。我还想象通过优化SQL查询可以解决这个问题,但应该通过软件完成。我们还支持许多数据库,如Mysql,Posgre或MSSQL,因此它无法链接到特定的供应商解决方案(我猜)。
所以,问题是:有没有人知道任何机制或框架或算法以不同的方式做事并解决这个问题,以最佳和高效的方式?
Memcached的? Infinispan的? Hadoop的?
答案 0 :(得分:0)
您可能希望“实现”收件箱并在每次用户读取内容时更新它,组的成员身份更改等。实现的收件箱可以存储在数据库表中或存储在Infinispan / memcached等单独的系统中