diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-12-31 20:34:27 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-12-31 20:34:27 +0900 |
| commit | e3a84df9fcae8f25c8ea1d527638c2bfaafb942e (patch) | |
| tree | 605f909c78e8b4510b7110d57749c1c0fe566360 /docs/dev/roadmap.md | |
| parent | b69fd1353c449baa3262016c2bb8f653932bd932 (diff) | |
| download | kioku-e3a84df9fcae8f25c8ea1d527638c2bfaafb942e.tar.gz kioku-e3a84df9fcae8f25c8ea1d527638c2bfaafb942e.tar.zst kioku-e3a84df9fcae8f25c8ea1d527638c2bfaafb942e.zip | |
feat(db): add ORDER BY to repository SELECT queries
Ensures deterministic ordering for all multi-row SELECT queries:
- deck/note/noteType findByUserId/findByDeckId: order by createdAt
- card findByNoteId: order by isReversed (normal card first)
- note field values: order by noteFieldTypeId
- sync pull queries: order by id
This guarantees consistent UI display and sync results regardless
of PostgreSQL's internal row ordering.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'docs/dev/roadmap.md')
| -rw-r--r-- | docs/dev/roadmap.md | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/docs/dev/roadmap.md b/docs/dev/roadmap.md deleted file mode 100644 index 3347d0f..0000000 --- a/docs/dev/roadmap.md +++ /dev/null @@ -1,34 +0,0 @@ -# Kioku Development Roadmap - -## Add ORDER BY to SELECT Queries - -複数行を返すSELECTクエリにORDER BYを追加し、実行結果の順序を決定的にする。 - -**Background:** -- PostgreSQLはORDER BYがない場合、行の返却順序を保証しない -- UI表示やSync結果の一貫性のため、明示的なソート順が必要 - -### Phase 1: Core Repository Queries - -- [ ] `src/server/repositories/deck.ts` - - `findByUserId()`: `.orderBy(decks.createdAt)` 追加 -- [ ] `src/server/repositories/note.ts` - - `findByDeckId()`: `.orderBy(notes.createdAt)` 追加 - - `findByIdWithFieldValues()` 内のfieldValues取得: `.orderBy(noteFieldValues.noteFieldTypeId)` 追加 - - `update()` 内のallFieldValues取得: `.orderBy(noteFieldValues.noteFieldTypeId)` 追加 -- [ ] `src/server/repositories/noteType.ts` - - `findByUserId()`: `.orderBy(noteTypes.createdAt)` 追加 -- [ ] `src/server/repositories/card.ts` - - `findByDeckId()`: `.orderBy(cards.createdAt)` 追加 - - `findByNoteId()`: `.orderBy(cards.isReversed)` 追加 (通常カードを先に) - -### Phase 2: Sync Repository Queries - -- [ ] `src/server/repositories/sync.ts` - - pull系クエリ (cards, noteFieldTypes, notes, noteFieldValues): `.orderBy(*.id)` 追加 - -### Phase 3: Verification - -- [ ] `pnpm typecheck` 実行 -- [ ] `pnpm lint` 実行 -- [ ] `pnpm test` 実行 |
