我听过这背后的推理,我很好奇其他人是否认为这是最佳实践/好主意。
一种推理是,限制对数据库表的直接访问,并强制应用程序/用户使用 SP(存储过程)进行 CRUD 操作将允许 DBA
- 在将 SP 投入生产之前进行细粒度控制以批准/审查 SP
- 避免开发人员编写的随机查询可能会导致服务器负载/其他服务器问题
这意味着开发人员无法在表上编写 Linq 查询(尽管涉及 SP 的 Linq 查询是可能的)
这也意味着开发人员必须忘记编译时检查以及完全控制数据,而主要使用另一种语言(SQL)来处理数据。
我并不反对这一点,也不认为这是一个好主意。我只是好奇想知道其他人的想法。这种方法还有哪些其他优点和缺点?
Update: 正如所提到的托马斯在回答中 https://stackoverflow.com/questions/543274/is-it-a-best-practise-for-a-database-to-allow-apps-do-crud-operations-always-thro/543578#543578,我倾向于认为 SP 是逻辑,使用“SQL 数据库编程”来执行逻辑是可以的,只要它不是“业务逻辑”。业务逻辑需要分离、编译时检查和集成检查点等等。
就我个人而言,我从未发现过程对于 CRUD 中的“R”来说足够灵活。我通常使用视图。但是通过访问数据库视图和过程还允许您抽象数据库表,从而为数据模型提供更大的灵活性未来......几乎就像在界面上工作一样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)