对于一个新项目,我们的应用程序开发人员希望使用Entity Framework的每类型表继承模型。
我们最近向我们的DBA展示了这个功能和结果表模式,他表达了担忧,我想知道如何解决这些问题。继承是OO的重要组成部分,从开发方面来说,让DB和ORM本身支持这个概念会很棒。此功能是EF的一部分,因此我们不会将设计从左侧场中拉出来。
他的主要担忧是:
我们已经解决了他存储的proc问题(我们已经使用了另外一个ORM 3年了。)
就复杂性而言,我确实看到了他的观点,但对立点解决了这些问题(对我而言):
我知道我们不是第一个因数据库支持的模型继承而遇到DBA问题的人。其他人如何说服他们的DBA这是一个好模型?
答案 0 :(得分:3)
他主要担心的是没有考虑TPT的实际问题。
TPT的主要问题是inefficient queries(也请查看评论)。 EF中的TPT具有真正的性能问题,因为即使它不需要派生表中的数据,它也会产生很多左连接和联合。创建任何关于此数据结构的报告并通过EF访问报告数据是非常糟糕的决定。
编辑:
如果他的问题与使用您的数据库的其他工具有关,那么它们是完全合法的,但同时它只是关于数据库结构的正确文档。