我正在开发MVC3和Razor网站。在最终处理数据之前,用户必须通过一些选择来选择他们的方式。
例如: 客户列表 - >版本列表(由客户端过滤) - >等(按版本过滤)
用户选择客户端后,会为客户端选择一个版本。所以我在查询字符串上传递客户端ID。对于版本I的控制器的每种模式,我都会传递客户端ID。在我想要显示客户端名称的视图上,我正在查询客户端的数据库并将其填充到ViewBag中。这看起来非常低效。我觉得我可以使用cookie来保存客户端ID&名。
既然我已经完成了我的版本控制器,那么每个后续的控制器我都会面对相同的模式,但现在我需要同时保留客户端和版本......
在请求中保留此类信息的首选方法是什么?
答案 0 :(得分:1)
这似乎非常低效
这就是为数据库制作和优化的数据=>根据字段查询数据,如果在这些字段上放置索引,它将会非常快。当然,会话,Cookie,缓存是一些常用的技术,可以用来限制对数据库的查询数量,但是你必须假设你可以通过这种方式获得数据的可能 staleness (如果其他一些线程/进程修改了数据库中的数据,你不再得到正确的结果)。
所以在做任何过早的优化之前,我会建议你:锤击你的数据库,直到你发现这实际上是你的应用程序的瓶颈。数据库可能会成为一些非常高流量的应用程序中的瓶颈,你应该采用一种相关的技术(当然,或者在一些写得不好的应用程序中,但暂时不要排除这种可能性)。
答案 1 :(得分:0)