我正在为一个应用程序设计一个数据库,它将被不同的前端编程语言访问,例如 php、asp.net、android 应用程序和 iphone 应用程序。
我很困惑,将不同的编程语言直接访问数据库是否好?我在某处了解到,我必须在数据库(后端)和编程语言(前端)之间创建一个中间层。
- 这个中间层是不是表示Stored Procedure?
- 如果不是存储过程,创建这个中间层需要什么?
- 如果我的整体逻辑错误,请建议我使用其他任何方法来解决这个疑问。
- 中间层有没有什么设计需要注意的地方?
提前致谢。
我正在为一个应用程序设计一个数据库,它将被不同的前端编程语言访问,例如 php、asp.net、android 应用程序和 iphone 应用程序。
我很困惑,将不同的编程语言直接访问数据库是否好?我在某处了解到,我必须在数据库(后端)和编程语言(前端)之间创建一个中间层。
提前致谢。
如果您只是谈论通过 PHP 和 ASP.net 访问数据库,那么存储过程可以充当公共中间层。一旦将 android 和 iphone 应用程序添加到等式中,您就需要设计另一个中间层。原因是大多数移动设备没有可用的数据库驱动程序。
在您的情况下,您应该在 asp.net 或 PHP 中将中间层构建为 Web 服务。大多数将这些 Web 服务设计为REST API。您需要考虑您的移动应用程序需要的信息,并为这些内容(用户、帖子等)构建 API 端点。我还建议让您的 ASP.net 和 PHP 站点/应用程序使用与您的移动应用程序相同的 API。
通过像这样设置 API,您可以减少应用程序所需的工作。您的移动应用不知道要获取最新的 10 篇帖子,它必须查询
SELECT * FROM posts order by create_date desc limit 10
. 它只需要向http://myapi/posts/latest
.Stack Overflow 和 Programmers.SE 上有几篇关于设置 Web 服务 API 的帖子,我建议查看它们。