【问题标题】:Does a Normalized Class Design Lead to a Normalized Database Design规范化的类设计是否会导致规范化的数据库设计
【发布时间】:2013-07-12 03:40:34
【问题描述】:

动机:我是一名独立开发者,所以我在开发过程中担任各种角色,从编程到 UI 设计再到数据库设计等。(相当累人) .我们都知道一个人不可能擅长所有(或许多事情),而我肯定知道的另一件事是数据库应该经过精心设计和规范化。

假设:假设我是一个非常优秀的面向对象开发人员,并且我按照最佳实践(例如 SOLID) 和模式设计我的领域模型。

问题:如果我的领域模型设计得非常好,并且我使用 ORM(例如 Nhibernate、实体框架等)从该模型生成数据库,生成的数据库会被规范化吗?

【问题讨论】:

  • @DannyBeckett 他的意思是“iDesign”——帮助设计代码的 iPhone 应用

标签: database oop database-design orm normalization


【解决方案1】:

生成的数据库将取决于您的实体映射。如果您询问将使用的默认映射,则生成的数据库可能未标准化。

例如,如果默认情况下您有很好的继承层次结构,Entity Framework 将使用 table per hierarchy (TPH) 映射,它通过非规范化 SQL 模式来启用多态性。 TPH 使用鉴别器列将层次结构中的所有类型存储在单个表中。 TPH 违反了第三范式,因为鉴别器列不是主键的一部分,但有些列依赖于鉴别器值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-18
    • 2011-11-20
    • 1970-01-01
    • 2011-07-25
    • 2011-04-18
    • 2012-02-25
    • 2012-08-10
    • 2011-12-20
    相关资源
    最近更新 更多