多个表同一个对象的房间(多语言数据库)

瓦西列夫先生

我在一个Android项目上工作,该项目必须在本地数据库(房间)中存储一些数据。我必须提供的功能之一是将数据以不同的语言存储在本地数据库中,例如,如果我有食品信息,则该信息必须以英语,德语,法语等存储。

我的数据库的结构是这样的:

@Entity(tableName = "food")
public class Food{

}

@Entity(tableName = "food_fr")
public class FoodFr{

}

@Entity(tableName = "food_de")
public class FoodDe{

}

我的问题是,如何让这三个不同的表(使用不同的语言)具有相同的列,并且@Dao对象为所有表返回一个公共(父)对象?

我完全不确定这是否有可能,但是如果有人对这种情况有解决方案,请提供帮助。

提前致谢 :)

常用软件

最好的解决方案是只有一个表,而不是三个表。使用的柱(例如,这三种语言之间进行区分language用柱enfrde值)。由于无论如何都会重写许多现有代码,因此从三个表切换到一个表似乎并不是主要障碍。

话虽如此,为了保持现有的三表结构,具有FoodFoodFrFoodDe都从BaseFood定义您的字段/列的通用基类(例如扩展而来

对于查询,您需要让DAO处理所有四种情况(三种特定的语言表,以及一种将这三种情况的结果进行组合的方法),例如:

@Query("SELECT * FROM Food")
List<Food> getAllFood();

@Query("SELECT * FROM FoodFr")
List<FoodFr> getAllFrenchFood();

@Query("SELECT * FROM FoodDe")
List<FoodDe> getAllGermanFood();

@Transaction
List<BaseFood> getAllFoodAcrossAllThreeLanguages() {
  ArrayList<BaseFood> result=new ArrayList<>();

  result.addAll(getAllFood());
  result.addAll(getAllFrenchFood());
  result.addAll(getAllGermanFood());

  return result;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在多个数据库中索引同一个表

数据库表中的多语言字段

多语言数据库的架构

如何使两个表指向同一个对象在数据库中?

在一个语句中查询多个表的房间数据库

SQLite是否在同一个数据库中支持多个模式?

数据库设计中,客户(公司/个人)在同一个表中?

如何在 Room 数据库的同一个表中使用 @ForeignKeys?

Istio ServiceEntry,用于将多个外部数据库转到同一个数据库

最佳实践 Joomla 多语言国家列表数据库表?

在同一个应用程序中为同一个模型和同一个存储库使用多个 mongo 数据库

如何在处理同一个表中的数据时更新数据库表中的某些行?

多语言数据库,默认回退

对多语言数据库的Fluent API支持

休眠将 2 个 java 文件链接到同一个数据库表

如何引用同一个数据库的第二个表

在同一个数据库表中将一行拆分为多行

多个Android应用程序可以访问同一个Firebase数据库吗?

H2-多个应用程序访问同一个H2数据库

如何处理浏览器中与同一个数据库同步的多个PouchDB实例?

Laravel forge - 多个服务器如何访问同一个数据库

android上的同一个数据库是否可以有多个文件dao?

具有指向一个多语言网站的多个域的可能性

想要连接到同一个数据库表但具有不同的值

创建一个多语言网站

如何建立一个多语言网站?

在同一个数据库中安装 wordpress 和 laravel 因为我的主机不允许多个数据库

将来自不同数据库的数据整理到同一个输出窗口

在同一个 Amazon RDS 上创建重复的 SQL Server 数据库