我正在尝试设计一个可通过定制应用程序访问的数据库系统。目前,网络应用程序尚未计划 - 但将来会考虑。定制应用程序将基于 MacOSX、Windows、iOS 和 Android。
我完全是 MySQL 设计的菜鸟。所以,问题是,将 MySQL 数据库设计为允许远程连接(来自各种应用程序)更好还是应该通过基于 PHP 的“门户”访问数据库?各有什么优缺点?
最佳答案
由于您将拥有多个客户端应用程序,因此您应该通过 Web API(通常是 RESTful API)公开数据库。 Zend 的 ApiGility是轻松创建它们的一种方法。您的所有客户端都与 API 端点通信以执行操作(添加/编辑/删除记录、验证用户等)。您的 API 会处理请求并更新您的数据存储。
这有很多好处
- 您的客户只需要知道如何通过 HTTP 与您的 API 对话。
- 随着新事物的出现,您可以轻松地允许更多客户。
- 您的 API 会处理数据验证和清理,这意味着您的客户可以少做一些工作,因此不太容易引入错误。
- 您的客户对后端一无所知。因此,如果您的应用程序起飞并且您需要水平扩展,则无需更改它们。或者,如果您需要切换后端存储或在 API 和数据库之间添加缓存层,所有更改都在“幕后”进行。
您需要阅读和研究一些内容:
- 如何设计好的 REST API
- 如何处理客户端应用程序身份验证和安全性
- 构建 API 的框架/方法
- 在客户端和 API 之间交换数据的最佳方式。或者您是否需要多种方式来表示数据? JSON 通常是最好的选择,但您可能希望提供 XML。
关于php - MySQL 访问 - 允许远程访问还是通过 PHP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23542067/