正确的模式设计父子类
如何设计Parent-Child类。
注意:这里Parent不是基类,而是显示一对多关系。
方法“A”
public class Company { public int CompanyID; ... public IList Branches; } public class Branch { }
Appraoch“B”
public class Company { public int CompanyID; ... } public class Branch { public int CompanyID; //which represents company object }
分支屏幕的最终UI设计:=
在树视图中显示以查看屏幕: –
Company A Branch 1 Branch 2 Company B Branch 3 Branch 4 Branch 5
添加/编辑屏幕(2个单独的屏幕): –
Company - Company Drop-down other attributes of Branch
1)如果我们看到View屏幕然后方法“A”看起来很好,如果我们看到添加/编辑屏幕方法“B”看起来很好。
2)在使用方法“A”时,当我必须返回分支数据时,我必须实际返回公司类型而不是分支类型:
Company GetBranch(int BranchID)
3)我们的数据库设计基于方法“B”,其中分支表存储CompanyID
有人可以建议一下这个好方法吗?
国际海事组织没有“权利”这样做。 这完全取决于您打算如何使用和存储/检索数据。
将分支机构存储在公司之下我的原因是巨大的流量开销(因为即使你关心的只是公司或特定分支,你总是会通过所有分支机构),单独使用ID我会导致额外的“查询”以加载所有相关信息数据。 我将使用与entity framework的工作方式类似的实现:
我将拥有分支和公司ID存储库并保留导航属性(Comany.Branches,Branch.Company)并具有填充仅在需要时调用的属性的函数。
例如,您可以使用仅返回公司的GetCompany(id)
函数和将返回填充了其分支的公司对象的GetCompanyWithBranche(id,int? brandchid)
(如果指定了id,则返回单个分支)。 这样,您就可以确定要检索的数据量。