jmdict: store glossary type in different table

This commit is contained in:
2026-04-13 19:43:25 +09:00
parent 556d07913d
commit 3f4fdf470d
4 changed files with 18 additions and 2 deletions

View File

@@ -108,7 +108,6 @@ class Glossary extends SQLWritable {
Map<String, Object?> get sqlValue => {
// 'language': language,
'phrase': phrase,
'type': type,
};
}

View File

@@ -172,6 +172,14 @@ Future<void> seedJMDictData(List<Entry> entries, Database db) async {
JMdictTableNames.senseGlossary,
g.sqlValue..addAll({'senseId': s.senseId}),
);
if (g.type != null) {
b.insert(JMdictTableNames.senseGlossaryType, {
'senseId': s.senseId,
'phrase': g.phrase,
'type': g.type!,
});
}
}
}
}

View File

@@ -11,6 +11,7 @@ abstract class JMdictTableNames {
static const String senseDialect = 'JMdict_SenseDialect';
static const String senseField = 'JMdict_SenseField';
static const String senseGlossary = 'JMdict_SenseGlossary';
static const String senseGlossaryType = 'JMdict_SenseGlossaryType';
static const String senseInfo = 'JMdict_SenseInfo';
static const String senseMisc = 'JMdict_SenseMisc';
static const String sensePOS = 'JMdict_SensePOS';
@@ -33,6 +34,7 @@ abstract class JMdictTableNames {
senseDialect,
senseField,
senseGlossary,
senseGlossaryType,
senseInfo,
senseMisc,
sensePOS,

View File

@@ -225,13 +225,20 @@ CREATE TABLE "JMdict_SenseGlossary" (
"senseId" INTEGER NOT NULL REFERENCES "JMdict_Sense"("senseId"),
"phrase" TEXT NOT NULL,
-- "language" CHAR(3) NOT NULL DEFAULT "eng",
"type" TEXT,
-- PRIMARY KEY ("senseId", "language", "phrase")
PRIMARY KEY ("senseId", "phrase")
) WITHOUT ROWID;
CREATE INDEX "JMdict_SenseGlossary_byPhrase" ON JMdict_SenseGlossary("phrase");
CREATE TABLE "JMdict_SenseGlossaryType" (
"senseId" INTEGER NOT NULL REFERENCES "JMdict_Sense"("senseId"),
"phrase" TEXT NOT NULL,
"type" TEXT NOT NULL,
PRIMARY KEY ("senseId", "phrase", "type"),
FOREIGN KEY ("senseId", "phrase") REFERENCES "JMdict_SenseGlossary"("senseId", "phrase")
) WITHOUT ROWID;
CREATE TABLE "JMdict_SenseInfo" (
"senseId" INTEGER NOT NULL REFERENCES "JMdict_Sense"("senseId"),
"info" TEXT NOT NULL,