在您的C#源代码或存储过程中保留SQL有哪些优点/缺点?我一直在与一位朋友讨论我们正在开发的一个开源项目(C#ASP.NET论坛).目前,大多数数据库访问都是通过在C#中构建SQL内联并调用SQL Server DB来完成的.所以我试图确定哪个特定项目最好.
到目前为止,我有:
代码中的优点:
存储过程的优点:
传统观点认为存储过程总是更快.所以,因为他们总是更快,使用它们所有的时间.
我很确定这是基于历史背景,曾经是这种情况.现在,我并不主张不需要存储过程,但我想知道在现代数据库(如MySQL,SQL Server,Oracle或< Insert_your_DB_here >)中存储过程在什么情况下是必需的.通过存储过程进行ALL访问是否过度?
这些软件体系结构在哪些领域发挥作用或失败?
哪些关键要求会促使您选择一个而不是另一个?
请假设您有开发人员可以执行良好的面向对象代码以及良好的数据库开发.
另外,请避免神圣的战争:)这三种技术都有利有弊,我对哪种方式最适合使用感兴趣.
language-agnostic architecture orm code-generation stored-procedures
我已经开发了大约6年的网络/桌面应用程序.在我的职业生涯中,我遇到了使用存储过程在数据库中大量编写的应用程序,而许多应用程序只为每个实体只有几个基本存储过程(读取,插入,编辑和删除实体记录) .
我见过人们争辩说,如果你已经为企业数据库付费,那就广泛使用它的功能.虽然很多"面向对象的架构师"告诉我,在数据库中放置任何必要的东西绝对是犯罪,你应该能够使用这些类的方法来驱动应用程序吗?
您认为哪里是平衡?
谢谢,Krunal
如果我有一个名为"Categories" science,maths,english的列,如下所示,以逗号分隔的行显示,如何匹配包含类别的所有行maths?
我尝试过一个简单的LIKE但是不太准确,因为搜索时可能会有'poo_science' '%science%'会匹配两者.
我查看了StackOverflow并且有很多类似的问题但是所有人似乎都希望将数据作为逗号分隔列表或其他东西返回 - 这不是我所追求的.
我不想使用存储过程,也不能使用全文搜索.我有一个我使用的存储过程,('$')在每个值周围添加了另一个字符,然后搜索'$value$'...这是太讨厌了吗?我采用了一种更简单的方法.