簡體   English   中英

正確的模式設計父子類

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM