Jef*_*emp 10
数据库的真正责任是什么?
数据库的核心是存储和检索数据的系统.磁盘上的CSV文件+合适的工具(例如Excel)就是一个简单的例子.此外,数据库可能提供其他功能,例如事务控制,数据完整性和安全性.
我们应该将存储过程和函数添加到数据库中,还是只让它成为没有逻辑的数据存储库?
你想从数据库中得到什么?如果你想要的只是一个"位桶",那么无论如何,将它存储在磁盘上的普通文件中并将其称为"数据库".如果您想要更多,请使用适合您需求的产品.如果您希望能够使用类似SQL的4GL查询它,请使用MySQL.如果您需要事务控制,安全性,高级查询功能等,请使用其他DBMS(如果适用).但是,无论您选择哪种产品,都可以利用该产品.否则你会浪费你的时间和金钱.当然,你永远不会使用所有的功能(只有一个子集对你有用),但是如果你使用的很少,你也可以降级到更简单的产品.
如果您使用的是Oracle,则可以将数据库中的过程和函数(甚至更好的整个软件包)存储在数据库中.真正的问题是,您需要在这些程序和功能中编写什么 - 业务逻辑或表示逻辑?
就个人而言,我通常更喜欢保持业务逻辑接近数据,而表示逻辑是为每个接口定制的.
可以在数据上创建一个API层,这样无论您的应用程序如何访问您的数据库,它们都会获得一致的视图,并且它们都将使用一致的机制对其进行修改.换句话说,不是多次编写业务逻辑(每个接口一次),而是只编写一次,然后在任何地方重复使用它.
我听说有两个原因导致业务逻辑不应该存储在数据库中:
1.可维护性:很难改变.我从来没有真正理解过这个.输入有多难CREATE OR REPLACE PACKAGE?我怀疑这只是学习"另一种语言"的负担.
2.数据库独立性:在Oracle中有效的方法不适用于其他地方.这是一个大问题,和更好的头脑比我已经写了这一个.基本上,如果你真的需要它是"数据库不可知",你将无法使用你购买的数据库的任何高级功能,所以你也可以使用你能找到的最简单/最便宜的功能; 在这种情况下,你无论如何都不需要它在每个数据库上工作!
| 归档时间: |
|
| 查看次数: |
194 次 |
| 最近记录: |