插件架构和数据库中的关系

问题描述 投票:0回答:1

我有一个基于插件架构的 C# 应用程序。基本应用程序包括两个插件,一个用于身份验证,一个用于购买。

第一个包含用户表:

public class User
{
    public Guid Id { get; set; } = new();
    
    public string Email { get; set; } = string.Empty;
    
    public string Password { get; set; } = string.Empty;
}

第二个包含购买:

public class Purchase
{
    public int Id { get; set; }

    public Guid UserId { get; set; } = new();

    public string ProductName { get; set; } = string.Empty;
}

这两个插件完全独立(是两个项目,互不访问),但是共享一个数据库。它们也没有共同的模型,它们是单独的解决方案*

问题在于购买插件存储了有关哪个用户购买了某物的信息(具有 UserId)。 是否可以在两个独立项目中创建这两个表之间的关系?或者也许我不应该建立关系?但有一个问题。如果我需要删除用户怎么办?存在另一个插件仍会存储与该用户关联的数据的风险。

也许还有其他解决方案?

c# sql-server database entity-framework architecture
1个回答
0
投票

“这两个插件是完全独立的”,但它们不是......

考虑到我发现总体要求(正如您简要描述的那样)非常合理,也就是说您确实需要允许插件依赖于其他插件。

一种简单但相对干净的方法是每个插件解决方案至少有两个项目,一个仅用于“数据”(数据类型,但真正需要的任何东西),由依赖插件引用。

© www.soinside.com 2019 - 2024. All rights reserved.