- terms, translations, term_glosses with cascade deletes and pos check constraint - language_pairs with source/target language check constraints and no-self-pair guard - users with openauth_sub as identity provider key - decks and deck_terms with composite PK and position ordering - indexes on all hot query paths (distractor generation, deck lookups, FK joins) - SUPPORTED_POS and SUPPORTED_LANGUAGE_CODES as single source of truth in @glossa/shared |
||
|---|---|---|
| .. | ||
| db | ||
| shared | ||