database - 客户应该直接访问数据库吗?

标签 database client-server client information-retrieval server-application

是否应该对客户端应用程序进行编码,以便它们连接到远程 SQL 数据库并从中检索数据?

据我所知,这是非常糟糕的做法,您应该有一个服务器应用程序来处理所有客户端并充当检索数据的中央单元 - 对吗?

业务信息系统是否曾经在没有服务器应用程序来处理客户端的情况下构建过?

最佳答案

取决于“客户端应用程序”的含义。企业内部的客户端应用程序通常可以通过直接与中央数据库交互来很好地工作。当然,除非他们明确需要写入,否则一定要让他们使用只读凭据。

外部客户端应用程序可能是另一个问题。例如,如果您要分发 iPhone 应用程序,我肯定会编写一个 API 服务器来包装常见请求。

额外的抽象层通常不仅仅对安全有帮助——考虑可伸缩性。如果突然间您的客户请求增加了几个数量级怎么办?向 API 服务添加缓存或其他性能增强功能比更新每个客户端要容易得多。构建一个可以更改的架构比绑定(bind)到直接实现要好得多。

关于database - 客户应该直接访问数据库吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17295106/

相关文章:

Mysql 和 Putty - 错误 1044 (42000) : Access denied for user

java - 数据库同步在线/离线

database - DB2 中是否应该避免左外连接

c# - 无法理解 C# 中的持久性 http 连接

Android:将游戏数据从服务器发送到 Android 客户端

javascript - ReactJS 服务器端渲染与客户端渲染

c# - 服务器未提供有意义的回复,这可能是由于契约(Contract)不匹配、 session 过早关闭或内部服务器错误造成的

c# - .net 远程处理 : Update already serialized objects

java - org.hibernate.InstantiationException : Cannot instantiate abstract class or interface: device. 处置

c - 如何从 SCTP 消息中检索(RTO、MTU 和 SRTT)信息?