Vec*_*gna 2 performance database-design orm
对象关系映射(以 ActiveRecord 和 Rails 为例)允许程序员定义模型和删除回调之间的关系。
所以我的问题是:我还需要在我的数据库中定义外键吗?外键是否有其他功能(例如速度?),或者它的唯一功能是保持关系完整性?
如果外键受信任,它们确实可以加快查询速度。如果发动机知道,在每个值ParentID在Child表指的是有效的PKParents那么它甚至不会看那个表检查。
但是,无论如何,关系约束通常都是一个好主意。数据库中约束背后的一个理念是将它们用作不良数据的最后一站。外键就是一个很好的例子。
如果您完全依赖您的 ORM 进行关系管理,如果您更改为不同的框架会发生什么?您仍然需要保留现有数据。如果由于某种原因您需要更改 ORM 中的关系模型,并且在没有父项的情况下放入孤立的子记录,会发生什么情况?
简短回答 -是的,您仍然应该在数据库中使用键和约束。