【问题标题】:Set foreign keys if using a ORM framework如果使用 ORM 框架,请设置外键
【发布时间】:2016-01-20 08:57:41
【问题描述】:
尽管您使用像 Hibernate 或 Doctrine 这样的 ORM 框架,但您是否在表中设置了外键?在我看来,优点是您可以更轻松地在 sql 管理视图中导航,但我认为数据完整性不再是争论 - 只是因为您可以在 ORM 框架注释/xml/...中设置级联设置?你怎么看?
就我而言,我将始终使用外键,因为它为我提供了一个干净稳定的数据库定义。但我对其他人的意见很感兴趣。
【问题讨论】:
标签:
java
php
sql
orm
doctrine-orm
【解决方案1】:
在维护数据完整性和一致性(功能方面,性能方面)方面,没有任何现有的 ORM(即使是最强大的)可以与企业级关系 DBMS(如 mssql、postgres、mysql 等)相提并论。并且由 RDMBS 管理的数据库是免费的,并且为您的数据提供额外的入口和扩展点(具有许多可用的 API)。因此,它应该在由各种客户端执行的数据操作时保持数据的一致性。在许多情况下,您可以将非数据库应用程序视为可替换的前端。以数据为中心的良好副作用 - 您可以使用数据库对应用程序(应用程序部分)操作进行低级同步,通过更改数据库可编程性、模式(包括关系,约束)等。