ReviewsTable
tableBreakdex::DataStores::ReviewsTable
Immutable log of every flashcard review rating event
Each row is a single review action — the breakdancer saw a card and rated it. Reviews are append-only and never edited. They feed analytics, progress tracking, and FSRS state transitions. The entity snapshot fields (v9+) preserve context even if the original entity is later deleted.
Relationships
Depends On 1
reviews_dao
Reads From 3
moves_tablecombos_tablefsrs_cards_table
Breaks If 2
review_type_enum_changesrating_enum_changes
Data Access
Reads 3
moves_tablecombos_tablefsrs_cards_table
Answers
States
| State | Behavior |
|---|---|
| combo Deleted | message: combo_id set to NULL via on_delete:set_null, but entity snapshot fields preserve context shows: orphaned_review_with_snapshot |
| move Deleted | message: move_id set to NULL via on_delete:set_null, but entity_id_snapshot preserves the original reference shows: orphaned_review_with_snapshot |
| no Fsrs State | message: fsrs_pre_state and fsrs_post_state are NULL — review was manual, not algorithm-driven shows: manual_review |
Columns
| Name | Type | Constraints |
|---|---|---|
| id | text | NOT NULL |
| rating | text | NOT NULL ENUM: AGAIN, HARD, GOOD, EASY |
| review_type | text | NOT NULL ENUM: MOVE, COMBO, MANUAL |
| reviewed_at | datetime | NOT NULL DEFAULT: now |
| move_id | text | |
| combo_id | text | |
| entity_id_snapshot | text | |
| entity_type | text | |
| entity_display_name | text | |
| entity_category | text | |
| fsrs_pre_state | int | |
| fsrs_post_state | int |
Primary Key
idForeign Keys
move_id \u2192 movescombo_id \u2192 combos