|
|
1
1
|
|
|
2
1
一个解决方案可能是为不同的平台使用不同的查询集,其ID类似于 mysql:get_users=“从用户中选择* mssql:get_users=… pgsql:获取用户数=… 然后在启动时加载所需的一组查询,然后引用 DB::LoadQueries(平台): $users=$db->查询(获取用户) |
|
|
3
1
这样的方案不会考虑到SQL提供的所有丰富性,因此您最好使用为每个DB的所有表生成的代码存储过程。 即使您使用参数化存储过程,这些过程更了解数据库模型(即它们可以连接或了解用户,因此针对每个供应商都进行了优化),这仍然是一种很好的方法。我总是认为数据库接口层不仅仅是为应用程序提供简单的表,因为这种方法会占用大量的带宽,而且会浪费往返时间。 |
|
|
4
1
如果您有一组后端支持它,我同意生成存储过程以形成契约是最好的方法。但是,如果您的后端在存储过程方面的能力有限,则此方法不起作用,在这种情况下,您将构建一个AbstAction层来实现SQL或基于抽象/有限的SQL语法生成特定于目标的SQL。 |
|
|
Johnny T · 基于当前值的SQL合并表[重复] 1 年前 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
ojek · 如何对SQL结果进行分组和编号? 1 年前 |
|
|
senek · 如何在PL/SQL中将选择结果(列)放入数组中 1 年前 |
|
|
Sax · 规范化Google表格(第一步) 1 年前 |
|
|
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |