我正在开发一个Android应用程序,为课程提供和声明某些项目(有点像市场),主要侧重于以用户为中心的设计和ui(这主要意味着我们必须快速实现所有的逻辑和管理下面)。
这是我第一个需要有效发布的应用程序。所以现在我想知道关于R DBMS的最佳策略和最佳决策是什么(因为这个领域对于一些新手来说似乎是一个非常密集的森林)?
- 应用程序的目标用户总数不超过1000 <
- 远程访问/gh>
- 需要支持事务和ACID属性
- 必须支持SQL查询
其次,必须远程联系DMBS。所以我想知道是否有一种即插即用(黑盒)解决方案可用于设置后端(免费/便宜,很少实现,…)。
- 可扩展性,可用性和安全性不是真正的问题(目前)
首先,您需要决定android设备将如何与中央数据库通信。选项,从最简单到最难:
- 直接JDBC连接(通过TCP)。有些网络可能会阻止直接TCP连接。没有离线功能。
- 通过HTTP(S)建立JDBC隧道。没有离线功能。
- 在Android上运行一个本地数据库(Sqlite),并在可以时同步到远程数据库(允许离线)。看到SymmetricDS。
- 将REST API放在远程数据库的前面,并使用android内置的同步功能。
其次,您需要决定如何在用户之间隔离远程数据库数据:
- 没有隔离,用户可以做他们想做的其他数据。
- 数据库隔离,又名行级安全
- 应用程序隔离(在数据库中没有隔离,但是在REST API中控制隔离)
如果从问题1中选择选项A, B或C,则需要数据库隔离。
远程数据库有多少并发写器?
PostgreSQL现在是一个很好的选择,但是如果你需要行级安全性,MariaDB可能是一个更好的选择,因为它支持WITH CHECK OPTION子句,这个子句直到夏天才会出现在PostgreSQL中。不完全确定你具体在问什么,因为你可以通过谷歌搜索一些东西得到很多信息。但如果你想看几个谷歌选项。我还没有试过所有这些方法,所以建议:
App Engine: https://cloud.google.com/developers/articles/how-to-build-mobile-app-with-app-engine-backend-tutorial
Google Drive: http://developer.android.com/google/play-services/drive.html
和更一般的Android文档中的存储选项:http://developer.android.com/guide/topics/data/data-storage.html#netw