背景
这是我在开发Android应用程序时不断回头的问题。假设我的应用让用户“关注”电视节目。我的TVShow
模型类如下:
public class TVShow {
String title;
String[] show_cast;
boolean currently_airing = true;
boolean following = false;
long nextEpisodeTime;
String genre;
}
我有一个存储数百个电视节目的SQL数据库。这很有用,因为我可以利用详细查询来根据特定信息选择节目。我得到的问题是当我有多个TVShow
实例代表同一个节目时。
示例
假设我的数据库中有电视节目“The Walking Dead”,我从SQL查询中创建了一个TVShow
对象。此对象实例将被称为TVShow#1
。我决定“关注”这个节目,所以我设置TVShow#1.following = true
。在我的应用程序的其他地方,我查询当前正在播出的节目列表,其中“行尸走肉”是其中的一部分。将为该列表创建一个名为TVShow
的新TVShow#2
实例。这里的问题是我有两个TVShow
个对象,TVShow#1
和TVShow#2
代表“行尸走肉”,但它们对following
有不同的值。这会在我的应用程序逻辑中引起问题,因为代表同一电视节目的所有TVShow
实例之间没有一致性。
MY BAD WORKAROUND
将此扩展为一堆对象实例和更复杂的字段和逻辑,这就是我目前所处的情况。我通过将所有SQL数据加载到内存中来缓解这种情况(通常是ArrayList
或{{ 1}})启动应用程序时,只查询这些Java对象而不是SQL数据库。这种解决方案效率低且不方便,SQL查询可以提供帮助。我希望我的例子不会太混乱。如果我能澄清或提供更多信息,我会很高兴。如果我能做些更好的事情来确保同一模型对象的多个实例之间的一致性,请告诉我。
答案 0 :(得分:0)
这听起来像"跟随"财产应该是用户的财产而不是电视节目。
您的数据库应记录用户之间的关联以及他们关注的显示。因此,如果用户决定关注节目,则在该用户与该节目之间保存数据库中的持久关联,然后在下次查询数据库时状态将保持一致。
答案 1 :(得分:0)