我有一些支持级联更新/删除(用户、用户角色、用户权限和角色权限)的相关实体。
应用服务器经常使用它,我需要实现对它的快速访问。为此,我将把它放到应用程序缓存中。
问题是在对数据执行级联操作时,如何在DB和缓存之间提供同步?例如,如果我删除某个角色,我还需要删除所有的角色权限,或者如果我删除一个用户,我需要删除它的所有角色和他们的权限。
我看到了许多在缓存中支持实际数据的方法,但我也看到了一些缺点。请告诉我什么是最好的解决方案。
SqlCacheDependency机制接收通知。问题:当服务器负载过重时,情况如何?通知是否会被延迟,对于DB/app服务器来说,提供"select SomeField from DataTable where id = @x“这样的精确依赖会不会花费太大?CacheDependency实现缓存中的级联失效。问题:逻辑加倍。什么是好的解决办法?谢谢!
发布于 2011-08-14 20:51:35
用ORM怎么样?
就我个人而言,我使用nHibernate,它附带了缓存和级联内置,所以您甚至不必担心这一点(当然,还有许多其他特性可以使您的生活更加轻松)。
否则,我肯定不会使用选项1或3,因为它们将应用程序逻辑引入存储层。
选项2的巧妙实现--向DB发送删除命令的应用程序--不应妨碍您的性能。
https://stackoverflow.com/questions/7059421
复制相似问题