ROOM,SQLite和类层次结构

时间:2018-06-07 20:05:25

标签: android database sqlite android-room class-hierarchy

所以,这是我的问题。我一直在谷歌搜索一段时间,关于这个话题没有其他问题似乎接近我的错误。

在我的Android应用程序中,我有一个类层次结构,一个旅游景点列表。每个TouristAttraction都有一个布尔属性,用于指定该吸引力是否属于用户的“最喜爱”景点。

但是,当我插入一个特定类型的旅游景点时,比如一个纪念碑,房间插入会将继承和特定属性放在一个表中而不是超类表中,所以当我想得到所有“最喜欢的”列表时吸引力,我必须为每个子类组合选择查询的结果。

另外,当我想要标记喜欢的东西时,我首先要看看它是什么类型的旅游景点,然后得到特定的DAO ...这看起来有点难看。有没有办法,当我在Monument表中插入一个新行时,继承字段的数据会被插入到超类表中?

每次我需要收集每个旅游景点的数据时都会出现此问题,例如位置等。

1 个答案:

答案 0 :(得分:0)

我不熟悉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)

欢呼声 安迪