[英]Right Pattern to design Parent-Child class
如何設計Parent-Child類。
注意:這里Parent不是基類,而是顯示一對多關系。
方法“A”
public class Company
{
public int CompanyID;
...
public IList<Branch> 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我會導致額外的“查詢”以加載所有相關信息數據。 我將使用與實體框架的工作方式類似的實現:
我將擁有分支和公司ID存儲庫並保留導航屬性(Comany.Branches,Branch.Company)並具有填充僅在需要時調用的屬性的函數。
例如,您可以使用僅返回公司的GetCompany(id)
函數和將返回填充了其分支的公司對象的GetCompanyWithBranche(id,int? brandchid)
(如果指定了id,則返回單個分支)。 這樣,您就可以確定要檢索的數據量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.