当我们开发人员编写数据访问代码时,如果应用程序应该很好地扩展并处理负载/命中,我们应该真正担心什么。
鉴于这个简单的问题,您将如何以可扩展的方式解决它。
1.ProjectResource
是一个类(封装分配给一个的资源Project
)
2.分配给项目的每个资源都是User
类
3.eachUser
中的Project
也有ReportingHead
和ProjectManager
谁也是的实例User
4.最后有一个Project
包含项目细节的类
使用的类图例
用户
项目
项目资源
表格图
项目资源
资源 ID
项目编号
用户身份
报告主管
专案经理
类图
项目资源
ResourceId : 字符串 / Guid
项目:项目
用户:用户
报告头:用户
项目经理:用户
笔记:
所有用户信息都存储在 User 表中
所有项目信息都存储在项目表中
这是问题所在
当应用程序请求以下项目中的资源操作时
首先获取项目的记录
获取 UserId ,发出请求(使用
Users DAL
)以获取用户实例获取ProjectId,请求(使用
Projects DAL
)获取项目信息最后分配
Users
和Project
实例ProjectResource
很明显,您可以看到3 Db Calls
这里是为填充单人而制作ProjectResource
的,但关注点和管理对象的人已明确定义。这是我计划的方式,因为connection pooling
在Sql Server
&ADO.net
还有另一种方法,使用 Table Inner Joins 然后填充来一次性检索所有详细信息。
我应该采取哪种方式,为什么?
附加功能:
.NET 2.0、ASP.net 2.0、C#、Sql Server 2005、DB 在同一台机器上托管应用程序。