database - 什么是最好的灵活性,为什么?使用数据库 View 、数据库表、存储过程。和表中的对象

标签 database stored-procedures orm views

我想知道使用数据库 View 、数据库表、存储过程的最佳实践是什么。和表中的对象......其中哪一个更灵活,为什么,你能解释一下吗?

最佳答案

每个工具 has its uses .您的选择将取决于应用程序的性质及其安全性、性能和敏捷性要求。

现在许多程序员使用数据访问层 ( DALs ) 来做这类事情。许多 DAL 允许您指定要调用的 View 和存储过程。但您也可以直接对表运行查询,而不需要存储过程或 View 。

除非您使用的是对象数据库,否则您将处理 tables而不是对象。现在大多数应用程序都使用基于表的数据库系统,because they are so common ,您可以使用 DAL 来管理 object-relational impedance mismatch .

Stored procedures当需要高性能时使用,并且需要在数据库本身上完成编程的事情(可能添加时间戳值,或者添加/减去子记录)。一个好的 DAL 将提供高性能而无需使用存储过程。

Views用于管理数据库和数据消费者之间的接口(interface)。特别是,出于安全目的,可以过滤数据。在大型数据库场景中,DBA 设计和创建表,并管理允许用户用来访问数据的 View 和存储过程。

如果您正在寻找最大的灵 active ,您需要做的大部分事情都可以在 DAL 中完成,而无需 View 或存储过程。但同样,这取决于您的应用程序的要求。我会说您的应用程序和用户群越大,您​​就越有可能在您的应用程序中使用 View 和存储过程。

关于database - 什么是最好的灵活性,为什么?使用数据库 View 、数据库表、存储过程。和表中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2622663/

相关文章:

django - 在 Django ORM 中使用列过滤器获取主键 ID

python - ORM sqlalchemy创建模式设置列等于计算

database-design - 使用 Natural key 作为 DomainObject 的 ID 或 GUID + 自增域驱动设计

database - MapDB 是线程安全的吗?

c++ - 如何通过 QSqlTableModel 保存更改数据库?

php - 使用存储过程从数据库中选择?

MySQL 存储过程删除所有行而不是只删除一个

sql - 代码页的排序规则 (SQL Server)

javascript - 如何使 for 循环迭代从数据库结果添加到数组的附加元素?

mysql - Mysql编译好的程序存放在什么位置?