我有:
- 常客
- 商人
- 當然還有我們的管理員和內部團隊
我是否將所有用戶帳戶存盤在[regular visitors]資料庫中,然后將“敏感”資料分成一個[merchants]和一個[internal]資料庫以確保至少某種安全性,還是有更好的選擇?
另外,我正在使用 Entity Framework 來構建資料庫——雖然我目前只在 Web 界面上作業,但我最終想在專案中添加一個移動應用程式界面,可能還有一個 Windows 應用程式界面——我如何確保模型是共享的,所以我沒有多余的代碼可以復制?
真誠感謝任何幫助。
謝謝。
*當前將所有資料存盤在單一資料庫中。
uj5u.com熱心網友回復:
讓我們在開始之前澄清一些事情,如果你現在可以觀察到,所有典型的現代應用程式都處理來自移動設備或 Web 瀏覽器(所有平臺,如 Windows、Mac、Linux)的請求。并從桌面平臺。見下圖:
Application Architecture:

因此,請求來自不同的設備,我們稱之為(跨平臺),但我們可以使端點通用。那里有不同的技術。你可以考慮Asp.net Web API
現在來談談你的觀點。
"How do I ensure the models are shared so I don't have redundant code to duplicate?"
有幾種方法可以限制代碼冗余。你可以考慮
SOLID principle。在SOLID您可以專門實作 的Single Responsibility方法中,您a class should only have one responsibility還可以實作另外Inheritance的方法,OOP以便您可以在project/application不斷擴展時重用派生類中的基本代碼。
您可以在網上找到有關上述條款的大量示例。
所以我要解釋的是使您的后端應用程式具有通用性,以便它可以處理所有請求,無論它們來自哪里。這樣您就可以更輕松地處理代碼的可重用性,最終它也會限制冗余。
Now Consider Your Domain Model:
現在,您
ApplicationDbContext可以在您的專案中定義所有domain model您可以將您的業務模型視為域模型的內容,例如:RegularVisitors,Merchants并且admins and internal team作為Users域模型,您可以設計ApplicationDbContext如下:
public class ApplicationDbContext: DbContext
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
public DbSet<Merchants> Merchants{ get; set; }
public DbSet<RegularVisitors> RegularVisitors{ get; set; }
public DbSet<User> User { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Merchants>().ToTable("Merchants");
modelBuilder.Entity<RegularVisitors>().ToTable("RegularVisitors");
modelBuilder.Entity<User>().ToTable("User");
}
}
考慮到您的要求,這就是您前進的方式。有關詳細實施,您可以考慮
this thread相應地實施您的要求
希望上述步驟和實施能夠相應地指導您。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/451772.html
