【问题标题】:What is better to use to store items for a catalog app? A SQL database or another kind of data structure?使用什么来存储目录应用程序的项目更好? SQL 数据库或其他类型的数据结构?
【发布时间】:2017-10-25 11:54:58
【问题描述】:

我正在为卡片收藏开发一个目录应用程序(“某种”)。我的想法是用CardViews 显示RecyclerView 中的项目。我考虑将所有内容存储在SQL database 中。我的问题是我不知道如何“准备”应用内数据库,例如:您安装了应用程序并拥有目录。该项目需要 5 个参数(两个字符串、两个 int 和一个图像)。 我的下一个级别将是使用在线数据库实现所有内容。无论如何,目前我的问题是:SQL 数据库是一个好的解决方案吗?

【问题讨论】:

    标签: android mysql android-studio android-sqlite


    【解决方案1】:

    你可以使用Green Dao Framework

    greenDAO Android ORMgreenDAO 是一个开源的 Android ORM,让 SQLite 数据库的开发再次变得有趣。它使开发人员免于处理低级数据库需求,同时节省了开发时间。 SQLite 是一个很棒的嵌入式关系数据库。尽管如此,编写 SQL 和解析查询结果是相当乏味和耗时的任务。 greenDAO 通过将 Java 对象映射到数据库表(称为 ORM,“对象/关系映射”)将您从这些问题中解放出来。通过这种方式,您可以使用简单的面向对象 API 来存储、更新、删除和查询 Java 对象。

    【讨论】:

    • 那么就好像拥有一个包含java对象的SQL数据库?
    • 是的,也是一个关系数据库。您可以前往 greenDAO 码头并查看那里的所有示例。
    • 好的,我会的。我的最后一个问题是:要添加类似 4250 项的内容,我应该在代码中手动添加它们吗?
    • 您如何看待 Firebase 实时数据库?我正在阅读相关内容,但我不确定这是否是最佳选择。 Firebase 更多的是关于聊天或不同用户之间的交互。
    【解决方案2】:
    Couchbase-Lite-Android is a lightweight embedded NoSQL database engine for Android with the built-in ability to sync to Couchbase Server on the backend.
    
    Couchbase Lite databases are able to sync with each other via Sync Gateway backed by Couchbase Server.
    
    Other ways to setup replication:
    
    No replication -- just local data store.
    Peer-to-peer replication between Couchbase Lite instances.
    Replication to multiple Sync Gateway instances rather than a single Sync Gateway.
    

    https://github.com/couchbase/couchbase-lite-android

    最新版本的官方文档

    https://developer.couchbase.com/documentation/mobile/current/guides/couchbase-lite/index.html

    安卓版

    https://developer.couchbase.com/documentation/mobile/current/training/index.html?language=android

    【讨论】:

    • 感谢您的回答,我认为这对我的应用程序的下一个“级别”会有所帮助
    • @马克。我认为你必须回答一个更基本的问题。您的数据模型是否适合关系样式表模式,或者它是否本质上是非关系的。然后,您可以确定是否要使用 SQLite 并使用 ORM 包装器或使用 NoSQL(如 Couchbase Lite 或 Firebase)。这是一个可以帮助您做出决定的链接-SQL versus NoSQL
    • @rajagp。谢谢你的回答。我已经阅读了您链接我的内容,老实说,我没有考虑数据模型。我现在尝试使用 Firebase。你能帮我理解什么更好吗?
    • @马克。这实际上取决于您正在处理的应用程序和数据类型。如果您查看非结构化/半结构化数据或可能显着发展的数据(需要繁琐的模式迁移),那么 NoSQL 是更好的选择。我对您的应用了解不多,但“目录”样式数据通常是 NoSQL 的一个很好的用例。这里有一些examples
    • @rajagp 我可以告诉您应用程序的组织方式以及“数据库”。该集合包含卡片,这些卡片分为类别。每个用户都可以看到整个集合并检查他/她是否拥有它。这允许用户创建他/她自己的目录。我尝试使用 Firebase 实时数据库,这是个好主意吗?
    猜你喜欢
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多