如果有人能够想出一个更好的方式来提出这个问题会很好,因为我不确定如何最好地总结它。
在我的应用程序中,我目前有3种类型。 A,B和C.当应用程序首次启动时将不存在,并且随着用户创建它们而产生更多类。它们也可以在用户选择时删除和编辑。
保存这些类的实例的最佳方法是什么?
我当前的方法是在扩展的Application类中保存对象A的主列表,然后将序列化列表Object保存为SharedPreference或数据库。然后在应用重新启动或暂停时加载/保存它。这会是个好主意吗?
我知道如何在基本级别的android上使用SQL,如果没有存在多维,我会使用它。有没有办法让它适用于数据库?
任何其他建议将不胜感激。谢谢。
答案 0 :(得分:4)
这对我来说是尖叫数据库。它具有多个层的事实使得它对于数据库比对共享首选项更好。这就是SQL和关系数据库的用途 - 描述数据之间的关系和层次结构。
你想要的是一个包含5个表的数据库
TableA包含所有tableAs。 TableB包含所有tableB。 TableC包含所有tableCs
TableABMap有2列parentID和childID。 parentID是映射到tableA中的行的外键。 childID是一个forieng键,映射到tableB中的一行。如果您是关于订单的,请添加第3列(订单)。
TableBCMap的工作方式相同,但适用于表B和C.
要获取A中的所有B,您只需执行一个简单的子查询“SELECT * from TableB WHERE id in(TableABMap中的SELECT childid,其中parentid = object_a_you_want)”
我认为你应该为此学习一些SQL。如果您只知道基础知识,它是一个非常强大的工具。我的建议是不要隐藏在图书馆后面并用它来完成工作 - 你需要真正理解这种东西才能有效地使用它。
答案 1 :(得分:0)
在我们的某个制作应用中,我们使用Cupboard。它使用起来非常简单,可以满足您的大部分需求。是否能很好地抽象出SQL和其他混乱。不是真的"答案"但有一个建议。 :)
答案 2 :(得分:0)
您可以尝试green-dao ORM。您描述的关系可以通过它轻松实现。不需要SQL知识。