gpt4 book ai didi

entity-framework - 英孚遗传和 DNA 问题

转载 作者:行者123 更新时间:2023-12-04 08:30:28 25 4
gpt4 key购买 nike

对于一个新项目,我们的应用程序开发人员希望使用 Entity Framework 的 table-per-type 继承模型。

我们最近向我们的 DBA 展示了这个功能和生成的表模式,他表达了担忧,我想知道如何解决这些问题。继承是 OO 的重要组成部分,从开发方面来说,让 DB 和 ORM 原生支持这个概念会很棒。此功能是 EF 的一部分,因此我们并不是将设计从左场中拉出来。

他的主要顾虑是:

  • 我们没有使用存储过程
  • 增加的复杂性将使报告和数据更新更加困难

  • 我们几乎解决了他的存储过程问题(我们已经使用另一个 ORM 3 年了)。

    至于复杂性,我确实看到了他的观点,但对位点解决了它们(对我而言):
  • 不应从事务表执行报告(我们目前这样做),应使用 View 或转换后的报告数据库。
  • 扁平结构上的数据更新仍然会弄乱数据——更新数据的人有责任了解结构。 EF 的 table-per-type 继承模型使用的 schema 并不那么复杂,但在进行手动更新时必须遵守它。

  • 我知道我们不是第一个遇到 DBA 对 DB-backed 模型继承的担忧的人。其他人如何让他们的 DBA 相信这是一个好模型?

    最佳答案

    他主要担心的是没有考虑 TPT 的实际问题。

  • 如果需要,您可以将存储过程与 TPT 一起使用。
  • 数据更新并不难。 EF 将处理它们并确保数据修改的正确顺序。

  • TPT的主要问题是 inefficient queries (也检查评论)。 EF 中的 TPT 存在真正的性能问题,因为即使它不需要派生表中的数据,它也会进行大量左联接和联合。创建有关此数据结构的任何报告并通过 EF 访问报告数据是非常糟糕的决定。

    编辑:

    如果他的担忧与使用您的数据库的其他工具有关,那么它们是完全合法的,但同时也只是关于您的数据库结构的正确文档。

    关于entity-framework - 英孚遗传和 DNA 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6139274/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com