【发布时间】:2016-10-07 03:49:16
【问题描述】:
对于数据库暴露于应用程序访问(主要是查询),您设计了哪些最佳实践?
恕我直言,对于查询,我们应该几乎总是更喜欢视图而不是表。 Wiki 仅描述了它们的优点,省略了缺点。此外,它完全符合CQRS 原则。我们可以使用视图进行查询,使用存储过程进行修改。在这样的过程中,我们可以更好地控制保存的内容和方式。
一些可能的缺点:
- 查看维护成本,因为它扩大了项目的代码库
- 更复杂的 ORM 映射配置会阻碍开发人员的工作效率
最后一个问题:如果视图真的更好,为什么我觉得它们在大多数使用 RDBMS 进行存储的项目中没有得到充分利用?
【问题讨论】:
-
为什么要写存储过程?大部分时间不干燥。大多数时候可以摆脱约束(检查、外键、null、唯一、pk)和自动更新视图
-
自动更新视图是可以的,但有时会有一些限制,例如修改只能影响由多个表组成的视图中的一个表中的数据。
标签: sql database-design view relational-database