所以,这就是我的问题。我已经在谷歌上搜索了一段时间了,关于这个话题似乎没有其他问题让我感到困扰。
在我的Android应用程序中,我有一个类层次结构,一个旅游景点列表。每个TouristAttraction都有一个布尔属性,该属性指定该吸引力是否属于用户“最喜欢”的吸引力。
但是,当我插入特定类型的旅游景点时,比如Monument,Room insert将继承的和特定的属性放在一个表中,而不是放在超类表中,所以当我想要获得所有“喜爱的”景点的列表时,我必须组合每个子类的select查询结果。
此外,当我想要标记为最喜欢的东西时,我必须首先查看它是什么类型的旅游景点,然后获得特定的DAO……这看起来有点丑陋。有没有办法,当我在Monument表中插入新行时,继承字段中的数据被插入到超类表中?
每当我需要收集每个旅游景点的数据时,这个问题就会发生,比如位置等等。
发布于 2018-06-08 06:06:33
我不熟悉android-room。但是从sqlite的角度来看,我会将您的TouristAttactions组织在一个单独的表中,没有任何喜欢的标志。然后有第二个表,其中包含用户的最爱和景点之间的映射。
CREATE TABLE tabTouristAttrations (ID INTEGER AUTOINCREMENT, Name TEXT, ...);
CREATE TABLE mapFavoritesUser (AttrID INTEGER NOT NULL, UserID INTEGER NOT NULL, PRIMARY KEY (AttrID, UserID)干杯安迪
https://stackoverflow.com/questions/50749391
复制相似问题