【发布时间】:2019-08-02 21:20:36
【问题描述】:
我正在创建一个字典应用程序,使用 Room persistence 和 MVVM,其中可以有单词、同义词、反义词和同音词。同义词、反义词和同音词表可以包含单词表中的全部或部分相同单词。
因此,在下面的示例中,Word 表中的“word”和 Synonym 表中的“synonym”可以是完全相同的值。这也适用于其他 2 个表(反义词和同音异义词 [具有相同拼写和不同含义的单词])。
Join method Self-Join
+---------------------+ +---------------------+
| Word | | Word |
+---------------------+ +---------------------+
| PK word | | PK word |
+---------------------+ | FK synonym |
| FK antonym |
+---------------------+ | FK homonym |
| Join | +---------------------+
+---------------------+
| FK word |
| FK synonym |
+---------------------+
+---------------------+
| Synonym |
+---------------------+
| PK synonym |
+---------------------+
我考虑过使用自连接(不确定上述是否可行),但单词和其他 3 个表之间可能存在 M:N 关系。
如果我使用单词 table 为 3 个表中的每一个创建一个 M:N 连接,我将在所有 4 个表中都有很多重复的“单词”。如果数据不同,那将是理所当然的,但是数据是相同的,所以我想我会问,如果 JOIN 这是我应该这样做的方式吗?还是有别的办法?
【问题讨论】:
标签: android sql sqlite android-studio