KANJIDIC: add orderNum to yomi + meaning

This commit is contained in:
2025-05-21 12:57:08 +02:00
parent b8eba03000
commit 8bff2c6799
3 changed files with 18 additions and 6 deletions

View File

@@ -62,14 +62,14 @@ Future<void> seedKANJIDICData(List<Character> characters, Database db) async {
for (final r in c.readings) {
b.insert(KANJIDICTableNames.reading, r.sqlValue);
}
for (final k in c.kunyomi) {
b.insert(KANJIDICTableNames.kunyomi, k.sqlValue);
for (final (i, y) in c.kunyomi.indexed) {
b.insert(KANJIDICTableNames.kunyomi, y.sqlValue..addAll({'orderNum': i + 1}));
}
for (final o in c.onyomi) {
b.insert(KANJIDICTableNames.onyomi, o.sqlValue);
for (final (i, y) in c.onyomi.indexed) {
b.insert(KANJIDICTableNames.onyomi, y.sqlValue..addAll({'orderNum': i + 1}));
}
for (final m in c.meanings) {
b.insert(KANJIDICTableNames.meaning, m.sqlValue);
for (final (i, m) in c.meanings.indexed) {
b.insert(KANJIDICTableNames.meaning, m.sqlValue..addAll({'orderNum': i + 1}));
}
for (final n in c.nanori) {
b.insert(

View File

@@ -28,6 +28,7 @@ Future<KanjiSearchResult?> searchKanjiWithDbConnection(
KANJIDICTableNames.kunyomi,
where: "kanji = ?",
whereArgs: [kanji],
orderBy: "orderNum",
);
late final List<Map<String, Object?>> onyomis;
@@ -35,6 +36,7 @@ Future<KanjiSearchResult?> searchKanjiWithDbConnection(
KANJIDICTableNames.onyomi,
where: "kanji = ?",
whereArgs: [kanji],
orderBy: "orderNum",
);
late final List<Map<String, Object?>> meanings;
@@ -42,6 +44,7 @@ Future<KanjiSearchResult?> searchKanjiWithDbConnection(
KANJIDICTableNames.meaning,
where: "kanji = ? AND language = ?",
whereArgs: [kanji, 'eng'],
orderBy: "orderNum",
);
late final List<Map<String, Object?>> nanoris;

View File

@@ -128,30 +128,39 @@ CREATE INDEX "KANJIDIC_Reading_byReading" ON "KANJIDIC_Reading"("reading");
CREATE TABLE "KANJIDIC_Kunyomi" (
"kanji" CHAR(1) NOT NULL REFERENCES "KANJIDIC_Character"("literal"),
"orderNum" INTEGER NOT NULL,
"yomi" TEXT NOT NULL,
"isJouyou" BOOLEAN,
UNIQUE("kanji", "orderNum"),
PRIMARY KEY ("kanji", "yomi")
) WITHOUT ROWID;
CREATE INDEX "KANJIDIC_Kunyomi_byKanji_byOrderNum" ON "KANJIDIC_Kunyomi"("kanji", "orderNum");
CREATE INDEX "KANJIDIC_Kunyomi_byYomi" ON "KANJIDIC_Kunyomi"("yomi");
CREATE TABLE "KANJIDIC_Onyomi" (
"kanji" CHAR(1) NOT NULL REFERENCES "KANJIDIC_Character"("literal"),
"orderNum" INTEGER NOT NULL,
"yomi" TEXT NOT NULL,
"type" VARCHAR(7) CHECK ("type" IN ('kan', 'go', 'tou', 'kan''you')),
"isJouyou" BOOLEAN,
UNIQUE("kanji", "orderNum"),
PRIMARY KEY ("kanji", "yomi")
) WITHOUT ROWID;
CREATE INDEX "KANJIDIC_Onyomi_byKanji_byOrderNum" ON "KANJIDIC_Onyomi"("kanji", "orderNum");
CREATE INDEX "KANJIDIC_Onyomi_byYomi" ON "KANJIDIC_Onyomi"("yomi");
CREATE TABLE "KANJIDIC_Meaning" (
"kanji" CHAR(1) NOT NULL REFERENCES "KANJIDIC_Character"("literal"),
"orderNum" INTEGER NOT NULL,
"language" CHAR(3) NOT NULL DEFAULT "eng",
"meaning" TEXT NOT NULL,
UNIQUE("kanji", "orderNum"),
PRIMARY KEY ("kanji", "language", "meaning")
) WITHOUT ROWID;
CREATE INDEX "KANJIDIC_Meaning_byKanji_byOrderNum" ON "KANJIDIC_Meaning"("kanji", "orderNum");
CREATE INDEX "KANJIDIC_Meaning_byMeaning" ON "KANJIDIC_Meaning"("meaning");
CREATE TABLE "KANJIDIC_Nanori" (