什么是好的数据库模型定义语言?
Posted
技术标签:
【中文标题】什么是好的数据库模型定义语言?【英文标题】:What is a good database model definition language? 【发布时间】:2011-05-23 19:55:19 【问题描述】:我们正在使用 Zend 框架开发一个大型 php Web 应用程序。
此时,产品开始趋于稳定,我们正在放弃快速而肮脏的设置以避免回归。特别是,我们现在正在使用每个人都可以编辑的单个共享数据库。我们希望尽快摆脱这种情况。
Zend 框架似乎不支持经典的 RAD (Djangoish) 机制,您可以在其中定义数据模型,然后为您创建表。因此,我们正在考虑使用外部 ORM 工具来完成此操作。
我们可以在纯 SQL 中定义我们的架构和初始固定装置,但这是 a) 冗长 b) 容易出错 c) 级别太低 d) 有问题,因为我们必须为每个支持的数据库后端维护不同的版本。
所以我们正在考虑使用像 Doctrine 或 Propel 这样的 ORM 来定义我们的模型,并使用所选框架的方言创建包含初始数据的表。该应用程序使用 Zend 工具进行 ORMing,因此必须手动维护两个工具之间的一致性,但由于现在变化更加渐进,这似乎不是什么大问题。
到目前为止,我们正在为这项任务评估 Doctrine and Propel。关于我们错过的其他 ORM 的任何建议?对于手头的任务,也许完全不同的方法?
谢谢!
贡萨洛
【问题讨论】:
仅供参考。我们最终使用 Rails 的 ActiveRecord 和一个名为 standalone-migrations 的模块。这些工具效果很好,但是与 PHP 应用程序一起分发是一件痛苦的事情。 Windows 支持也很烦人,因为在 Windows 上安装 Ruby 很糟糕。我们计划在 PHP 中开发我们自己的等效工具。 我们最终使用了 Doctrine,但它也不是很好。请参阅此处了解更多信息:***.com/questions/9946585/… 【参考方案1】:我真的很喜欢红豆。您将数据库模型保存在纯 php 中,它会跟踪所有内容。
RedBeanPHP 是一个开源的 ORM 工具 对于 PHP。它专注于简单和 便于使用。是什么让 RedBean 与众不同 是它创建了你的数据库 即时架构。它扫描您的数据 并调整列类型以适应 你的对象属性。如果你的模型 稳定了你可以冻结 数据库。这样RedBean很容易 发展与但也非常 在生产服务器上快速。
自从我找到了这个 ORM,我不再使用学说。
http://redbeanphp.com/
【讨论】:
完全同意。 Redbeans 允许以您想要的方式完全内化您的数据对象/模式定义,并且在维护和配置方面非常轻量级。使用 RedBeans 时无需维护 SQL 数据库。以上是关于什么是好的数据库模型定义语言?的主要内容,如果未能解决你的问题,请参考以下文章