Javascript 网站服务数据库结果的既定方法

Javascript 网站服务数据库结果的既定方法,javascript,sql,database,rest,Javascript,Sql,Database,Rest,是否有为web客户端提供数据库行的既定方法或框架?到目前为止,我只是让他们提交一个JSON对象 { Query: "SELECT", Schema: "icecream", Table: "cones", Fields: ["price", "flavor"], Filters: [ { "Comparison": "=", "Field": "flavor", "Value": "chocolate" } ] } 我

是否有为web客户端提供数据库行的既定方法或框架?到目前为止,我只是让他们提交一个JSON对象

{
  Query: "SELECT",
  Schema: "icecream",
  Table: "cones",
  Fields: ["price", "flavor"],
  Filters: [
    {
      "Comparison": "=",
      "Field": "flavor",
      "Value": "chocolate"
    }
  ]
}

我验证了上面提到的字段是授权/正确的,然后构造一个准备好的语句mysql字符串,但是有没有框架或标准方法来实现这个呢

看起来您正在重新发明一种查询语言

为什么不允许用户直接键入SQL查询?或者mongodb查询,或者您使用的任何DBMS。开销要小得多

说到安全性,一个好的做法是将数据库的克隆设置为只读副本,并让客户端访问只读副本而不是主数据库节点

您的主节点和只读副本可以使用复制保持同步。任何好的DBMS都支持它


一个很好的例子就是

说实话,你所做的是非常不寻常的。您有效地为web客户端提供了完全访问权限,以便为数据库生成查询。您提到在构建查询之前要验证信息,这很好,因为SQL注入的风险非常高。你提出了一个非常广泛的问题,因此我将以同样广泛的回答回答:

不,没有框架或标准来实现这一点。原因是,除非您有非常具体的理由这样做,否则很少有web应用程序被设置为让web客户端对正在构建的查询进行如此广泛的控制。通常情况下,您的后端API会故意受到更多的限制。您正在有效地实现一个API方法,该方法表示:

给我你的查询的细节,我会为你建立和执行它,并返回结果。 通常的标准操作程序是采用更加具体和有限的API方法。与使用通用查询生成器不同,您需要为每个必须发生的特定事件使用API:

告诉我你想要多少条记录以及这一小撮字段上的搜索值,我将返回匹配用户的列表 告诉我您需要多少记录,以及您希望按哪些字段排序,我将返回匹配书籍的列表
这并不是说没有完全合理的理由按照您尝试的方式进行操作,但除非有理由特别希望让用户完全控制查询构建过程,否则我认为第一步是以一种让web客户端更少控制的方式进行重构,还有您的服务器端应用程序。

php通过ajax???