如果有人能想出更好的方式来问这个问题,那就太好了,因为我不确定如何最好地总结它。
在我的应用程序中,我目前有 3 种类型的类(class)。 A、B 和 C。当应用程序首次启动时,都不存在,并且随着用户创建它们,随着时间的推移会产生更多的类。它们也可以根据用户的选择进行删除和编辑。
- 我的应用包含对象 A 的列表。
- 类 A 有各种任意字段 + 对象列表 B(每个 B 只会在 A 的一个实例中)。
- B 类有各种任意字段 + 对象列表 C(每个 C 只会在 B 的一个实例中)。
- C 类只是一个具有任意字段的标准类。
保存这些类实例的最佳方法是什么?
我当前的方法是将对象 A 的主要列表保存在扩展的 Application 类中,然后将序列化列表对象保存为 SharedPreference 或保存在数据库中。然后在应用程序重新启动或暂停等时加载/保存它。这是个好主意吗?
我知道如何在基本级别的 android 上使用 SQL,如果不是存在多个维度,我会使用它。有没有办法让它与数据库一起工作?
任何其他建议将不胜感激。谢谢。
这让我尖叫着数据库。它具有多层的事实使其对于数据库比对于共享首选项更好。这就是 SQL 和关系数据库的用途 - 描述数据之间的关系和层次结构。
你想要的是一个有 5 个表的数据库
TableA 包含所有的tableAs。
TableB 包含所有的 tableB。
TableC持有所有的tableC
TableABMap 有 2 列 parentID 和 childID。 parentID 是映射到表 A 中的一行的外键。 childID 是映射到表 B 中的一行的外键。如果您是关于订单的,请添加第 3 列(订单)。
TableBCMap 的工作原理相同,但用于表 B 和 C。
要获取 A 中的所有 B,您只需执行一个简单的子查询“SELECT * from TableB WHERE id in (SELECT childid from TableABMap where parentid= object_a_you_want)”
我认为您可能应该为此学习一些 SQL。如果您只了解基础知识,它就是一个非常强大的工具。我的建议是不要躲在图书馆后面并使用它来完成工作 - 你需要真正理解这类东西才能有效地使用它。