【问题标题】:How established are ORMs (object relational mapping) in the world of databases数据库世界中的 ORM(对象关系映射)是如何建立的
【发布时间】:2011-04-15 22:56:06
【问题描述】:

我不是数据库管理员或架构师,所以我必须询问那些 24/7 全天候工作的人。 ORM(对象关系映射)的概念在数据库管理和体系结构领域是如何确立的?它是否仍在发生、被广泛批准但仍处于早期阶段,还是普遍不被批准?我正在学习这个领域,并希望了解它是否会成为该领域更广泛部分所欣赏的知识。

【问题讨论】:

  • 我希望我们的 dba 是 24/7 ......如果我能找到一个介于 9 和 5 之间的人,我很幸运!我发誓这是 dba 的工作要求,他们能够在您需要之前消失。哈哈
  • @chad,我们在第一天就获得了隐形斗篷。

标签: mysql database orm


【解决方案1】:

我可以根据我的经验告诉你。我们是一家 2.5B 美元的太阳能制造公司,我们的下一代产品基于 ORM 技术。我们正在使用 Linq-To-SQL,非常成功。我们对此非常满意。

【讨论】:

  • Linq-To-SQL 不是一个完整的 ORM 工具,但 LINQ to Entities(ADO.Net 实体框架)是一个 ORM(对象关系映射器)API。请参考这里stackoverflow.com/questions/8676/…
  • @A-Var - “完成”是主观的。仅仅因为 L2S 与数据库表是 1:1 的,并不意味着它不完整。从这个意义上说,与功能最多、花里胡哨的产品相比,每个 ORM 都是不完整的。
【解决方案2】:

广泛使用,绝对是现在和不久的将来。通过手动编码的 SQL 生成层访问数据库总是充满了苦差事和拼写错误,而且充其量也很笨拙。 ORM 允许您以编程方式使用持久性存储。

我认为这个博客的论证很好:http://jonkruger.com/blog/category/fluent-nhibernate/ 和这样的帖子 (nHibernate versus LLBLGen Pro) 显示了有多少人在使用它们。

【讨论】:

    【解决方案3】:

    这个概念已经存在了至少 20 年。

    如果您查看任何不错的 Web 框架,无论是 Java、Ruby、PHP、C# 还是 Python,它们都包含 ORM。通常,除非您对高性能或自定义 SQL 有特殊需求,否则它被认为是更专业的选择。

    【讨论】:

    • Re 高性能,这并不完全准确。如果您想偶尔负责性能,许多 ORM 会允许您使用自定义 SQL。
    • 我想我的想法是,如果您使用自定义 SQL,那么您几乎只是在使用 ORM 来获取数据库连接,而此时并没有真正使用 ORM。
    【解决方案4】:

    ORM 被广泛使用。 Django(python web 应用程序框架)使用 SQLAlchemy。 Hibernate 在 Java 程序中很流行。 ORM 使 SQL 应用程序开发速度更快,减少了您必须编写的样板代码量,并从应用程序的其余部分隐藏了您正在使用的数据库。使用 ORM 可能会影响性能,因此请准备好根据需要自定义内容。

    【讨论】:

      【解决方案5】:

      很多地方都在使用它们,这并不意味着它们使用得很好,或者它们对于数据库的长期健康来说是一个好主意。并不意味着它们也不是,通常只是意味着选择它们的人不会考虑随着时间的推移这会如何影响数据库设计、维护和性能。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-21
        • 1970-01-01
        • 2013-02-14
        • 1970-01-01
        • 2019-11-03
        • 1970-01-01
        • 2013-05-16
        • 2011-10-27
        相关资源
        最近更新 更多