ruby-on-rails - 引用数据完整性: Necessity,不错,还是旧帽子?

标签 ruby-on-rails nosql relational-database referential-integrity

我认为,像Rails这样的框架鼓励从数据库中移出很多逻辑,甚至包括约束和外键之类的东西。更好,因为它更易于管理且易于更改。即使这样,某些操作也更容易更快,或者仅在SQL中才可能。

最近,NoSQL数据库(例如MongoDB,Cassandra等)的流行激增,从根本上改变了数据库开发最佳实践的方法。

我的问题:是否不再需要参照数据完整性?

我意识到,通常情况下,这取决于选择最适合工作的工具,但让我们排除必须进行交易的金融应用程序和类似类型的应用程序,并专注于能够赚钱但不需要银行级别诚信的更典型的应用程序。

参照数据完整性的必要性是什么?有人可以列出不使用时遇到的一些问题吗?

使用像PostgreSQL这样的数据库来处理更关键的数据,而对不那么关键但要求很高的数据使用MongoDB是明智的策略吗?您如何建议准确定义哪些数据是“关键”数据和什么是“非关键”数据?

最佳答案

我认为问题和此处的大多数答案都在说同一件事:数据完整性(RI只是数据完整性的一个常见方面)绝对是必要的,并且对今天仍然至关重要。由于对治理,法规和数据保护的关注日益增加,今天的数据完整性可能比过去更加重要。

碰巧的是,人们发现DBMS没有提供所需的功能,因此他们希望在其他地方实现完整性规则。这很奇怪,因为毕竟DBMS最接近数据,因此应该最好地放置以有效地实现业务规则。声明性规则应该比程序性规则更容易维护和验证。与在许多其他层和应用程序中分布规则相比,在数据库中集中维护规则也应更具成本效益。

我的结论是,如果对某些人来说这些事情并非事实,那么这实际上说明了当今数据库软件的不足。这并不意味着完整性并不重要-恰恰相反。

关于ruby-on-rails - 引用数据完整性: Necessity,不错,还是旧帽子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3608736/

相关文章:

ruby-on-rails - 在我的闪存中显示用户名时出现问题 [:notice] - Agile Web Development With Rails - Chapter 11

mysql - 大数据或关系数据库(如 MySQL 集群)?

mysql - 在这种情况下如何在 SQL 中使用 GROUP BY 和 COUNT

ruby-on-rails - Selenium RC : Run tests in multiple browsers automatically

ruby-on-rails - 为什么你需要带乘客的 nginx 来实现 RoR?

ruby-on-rails - Nokogiri gem 安装在 Capistrano 部署中失败

hadoop - 我应该如何最好地存储这些文件?

NoSql 速成类(class)/教程

mysql - 从现有字段 MySQL 创建子表

mysql - 如何创建一个数据库来列出餐厅的自助餐系统?