【问题标题】:Best way to track new fields ASP.NET Core MVC跟踪新字段的最佳方法 ASP.NET Core MVC
【发布时间】:2019-06-28 06:36:41
【问题描述】:

我有一个跟踪供应商和工作的数据库。对于每项工作,我的数据库中都有四个供应商及其所有信息的位置。说明第五个供应商的最佳方式是什么?我应该编辑我的数据库并为潜在的其他供应商添加一堆额外的字段吗?或者我会创建一个只存在于 C# 类或类似内容中的字段?如果重要的话,我的应用程序是数据库优先设计。

编辑 使用 Entity Framework Core 和 PostgreSQL

【问题讨论】:

    标签: sql postgresql asp.net-core database-design entity-framework-core


    【解决方案1】:

    这个问题更多是关于数据库架构而不是编程。

    听起来您可能会遇到不太理想的数据库架构。因此,如果您无法重新构建数据库架构,您可能只需要处理它并以与其他供应商相同的方式添加另一个供应商。

    我将描述“正确”的做法。这样做的主要好处是不会复制数据(如果我理解正确,那么如果一个供应商从事多个工作,那么您在每个工作上都会复制供应商数据)。

    当您有两个相互关联的实体(例如“供应商”和“工作”)时,通常会为每个实体创建一个表(一个 Vendors 表和一个 Jobs 表)。

    如果每个工作可以由多个供应商处理,并且每个供应商可以处理多个工作,那么这称为“多对多”关系,通常会创建一个单独的表,其中包含两列(VendorId 和 JobId)定义关系。

    如果您使用的是实体框架,那么 EF 可以使用集合处理多对多关系:每个供应商都有一个 Jobs 属性,该属性是供应商参与的作业的集合。同样,每个作业都会有一个供应商集合。您实际上不需要在代码中查看映射表。

    有关如何在 SQL 中处理关系的更多信息是here

    here 中讨论了如何在 Entity Framework 中定义和使用关系(这是 EF6 特有的,但 EF Core 中的主体是相同的)。

    【讨论】:

    • 好的,我会更多地查看我的数据库。就目前而言,它非常结构化,并且没有很大的灵活性。
    猜你喜欢
    • 2017-05-04
    • 2020-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-18
    相关资源
    最近更新 更多