android - android平台上的数据库关系设计

标签 android web-services rest orm soap

大家好,我正在考虑如何为 android 完成一些数据库设计,并且我在考虑以下是否可行。

我正在尝试创建一个公司员工数据库,其中公司与员工有多对多关系,而员工又与其员工详细信息有一对一关系,具体取决于他所在的公司。基本上像这样

  1. 公司对员工:多对多
  2. 员工到 employee_details:一对一

所以现在的问题是我正在考虑使用 Android 设备来浏览我正在考虑如何填充信息的信息?我应该:

  1. 让网络服务器处理上述关系的 ORM,并将来自设备的每个调用作为单独的 httpConnect 调用处理?或
  2. 我是否应该让设备每次都通过下载信息与网络服务器同步,并让 Android 设备处理这种关系?

我希望设备能够无延迟地浏览信息(这使得方法 2 似乎应该是正确的选择,因为它将整个数据库同步到手机中并且浏览使用的是 sqlite)。但是有哪些选择呢?

有什么提示和意见吗?希望这不会造成混淆!谢谢 !

最佳答案

即使是第二个选项也可能看起来更好,但它可能更复杂,并且对于较大的数据集,同步可能需要很长时间,因此您在浏览信息时不会有延迟,但用户可能会等待很长时间该应用程序甚至会启动(想象一下如果用户使用 3G 或更糟糕的 EDGE)。通常第二种解决方案有这些挑战:

  • 要从数据库中提取多少信息?全部?只是一些公司?只有一些员工?
  • 如何更新存储状态?重新加载一切?重新加载只有差异?如何寻找差异?是否需要推送通知?
  • 多久重新加载一次?什么时候进行初始加载?

这是为了阅读。如果您还想在移动设备上进行一些修改,您可以肯定整个过程会更糟,因为在将多个设备的状态同步回主数据库时,您必须避免数据修改冲突。

开始的简单方法是结合使用这两种方法:

  • 没有本地数据库
  • 数据在需要时按需加载。例如,当用户打开应用程序时,您将加载前 50 家公司。当他请求更多时,您将加载另外 50 个,或者您将加载满足某些搜索条件的公司。当用户打开公司时,您将显示前 50 名员工,您将以与公司相同的方式与他们合作,并提供详细信息。
  • 修改总是意味着对真实数据库的持久化更改
  • 如果您不需要始终使用最新数据,您可以实现一些本地缓存并将一些数据缓存几分钟。

关于android - android平台上的数据库关系设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6478574/

相关文章:

Android导航组件如何保存BottomNavigationBar fragment 状态

android - 如何使用 Retrofit 2 和 RxJava 处理分页

android - 在 Android 中退出全屏后,嵌入式 IFRAME 视频继续在后台播放

asp.net - 使 Web 服务引用配置错误 - ASP.NET?

PHP 与 Node REST-API

Android 更新文件到 php serve

java - Android 客户端-服务器应用程序和 Web 服务

wcf - 何时使用 SOA(面向服务的架构)

php - 拉维尔 5.4 : Api route list

python - SessionAuthentication 是否在 Tastypie 中用于 HTTP POST?