php - MySQL 访问 - 允许远程访问还是通过 PHP?

标签 php mysql database-design database-connection

我正在尝试设计一个可通过定制应用程序访问的数据库系统。目前,网络应用程序尚未计划 - 但将来会考虑。定制应用程序将基于 MacOSX、Windows、iOS 和 Android。

我完全是 MySQL 设计的菜鸟。所以,问题是,将 MySQL 数据库设计为允许远程连接(来自各种应用程序)更好还是应该通过基于 PHP 的“门户”访问数据库?各有什么优缺点?

最佳答案

由于您将拥有多个客户端应用程序,因此您应该通过 Web API(通常是 RESTful API)公开数据库。 Zend 的 ApiGility是轻松创建它们的一种方法。您的所有客户端都与 API 端点通信以执行操作(添加/编辑/删除记录、验证用户等)。您的 API 会处理请求并更新您的数据存储。

这有很多好处

  1. 您的客户只需要知道如何通过 HTTP 与您的 API 对话。
  2. 随着新事物的出现,您可以轻松地允许更多客户。
  3. 您的 API 会处理数据验证和清理,这意味着您的客户可以少做一些工作,因此不太容易引入错误。
  4. 您的客户对后端一无所知。因此,如果您的应用程序起飞并且您需要水平扩展,则无需更改它们。或者,如果您需要切换后端存储或在 API 和数据库之间添加缓存层,所有更改都在“幕后”进行。

您需要阅读和研究一些内容:

  1. 如何设计好的 REST API
  2. 如何处理客户端应用程序身份验证和安全性
  3. 构建 API 的框架/方法
  4. 在客户端和 API 之间交换数据的最佳方式。或者您是否需要多种方式来表示数据? JSON 通常是最好的选择,但您可能希望提供 XML。

关于php - MySQL 访问 - 允许远程访问还是通过 PHP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23542067/

相关文章:

mysql - 将 Grails 与 PostgreSQL 一起使用时出现 org.hibernate.StaleObjectStateException

database-design - 更新复合主键

php - 如何在 PHP 中获取 Cookie 的名称?

php - 设计 PHP 电子邮件处理程序页面的样式?

php - 如何仅在选择查询返回一行时更新一行?

php - 从 Python 脚本解析 PHP 文件变量

mysql - 根据前一行中的值计算列值

php - PDO 和存储过程的无缓冲查询错误

mysql - 条件 UNIQUE/FK 约束

mysql - 次要关系的唯一性约束