Sequelize ORM关系与外键

时间:2018-05-07 17:51:19

标签: database-design orm model foreign-keys sequelize.js

我即将开始新的个人项目并使用Sequelize ORM,我和其他同事在另一个项目中使用过。我已经搜索了一些SQ文档,并发现SQ支持模型关系和经典外键。我是外键粉丝,但模型关系也是组织数据库模型的强大方式,而且潜力更强,然后外键(恕我直言)。

那么有人可以就不同情况或数据库架构中更好用的建议提供建议吗?

我的新项目不能有一些多态关系和其他奇怪和困难的结构(至少我希望如此),但它将是具有多种功能和能力的长期产品,所以它必须足够灵活。此外,我不打算使用任何东西,而不是项目ORM来修改数据库(mariadb)。

1 个答案:

答案 0 :(得分:2)

模型关系不比外键提供更多的权力或灵活性:它们是框架表达这些相同关系的方式。例如,A.belongsTo(B)是一个" Sequelizey"说A记录有一个B记录的外键的方式,这是在数据库模式中建立依赖关系的方式(如果你确实建立了一个硬依赖,Sequelize允许你跳过)。

当谈到明确关系时,记住数据库级约束是法律是很重要的,也是确保数据保持正确的唯一方法。其他任何内容 - 包括模型中hasOnebelongsTo的定义 - 都是建议 可能会被尊重有时 em>因此无法保证完整性。使用适当的外键约束。