我不太确定stackoverflow是否适合提出这样一个一般性的问题,但让我们试试看.
由于需要在某处存储应用程序数据,我一直使用MySQL或sqlite,只是因为它总是这样做.由于似乎全世界都在使用这些数据库(大多数是软件产品、框架等),像我这样的初学者很难开始思考这是否是一个好的解决方案.
好吧,假设我们的应用程序中有一些面向对象的逻辑,并且对象以某种方式相互关联.我们需要将这个逻辑映射到存储逻辑,所以也需要数据库对象之间的关系.这就导致我们使用关系数据库,我同意这一点——简单地说,我们的数据库表行有时需要引用其他表的行.But why use SQL language for interaction with such a database?
SQL查询是一条文本消息.我可以理解这对于真正理解它的功能来说是很酷的,但是在应用程序的一部分中使用文本表和列名,这不是很愚蠢吗?如果你必须从头开始编写数据存储,你就永远不会使用这种解决方案.就我个人而言,我会使用一些"已编译的db查询"字节码,这些字节码将在客户端应用程序中组装一次并传递到数据库.它肯定会用id号来命名表和冒号,而不是ascii字符串.在表 struct 发生变化的情况下,这些字节查询可以根据新的数据库模式重新编译,存储在XML或类似的格式中.
我的 idea 有什么问题?我有什么理由不自己写,而是使用SQL数据库吗?
让我的问题更清楚.大多数答案都声称,SQL作为一种文本查询,可以帮助开发人员更好地理解查询本身,并更容易地进行调试.就我个人而言,我已经有一段时间没有看到人们手工编写SQL查询了.我认识的每个人,包括我在内,都在使用ORM.在这种情况下,我们建立了一个新的抽象级别来隐藏SQL,这会导致我们思考是否需要SQL.如果您能给出一些例子,说明SQL是在没有ORM的情况下故意使用的,以及为什么使用,我将不胜感激.
EDIT2 SQL是人和数据库之间的接口.问题是why do we have to use it for application/database interaction?我仍然要求提供人类编写/调试SQL的示例.