#2 子ども向け学習アプリ:学習カードのUIとDB設計
Photo by Kilian Seiler on Unsplash
作業内容
- 学習カード用のダミーデータを作成
- 最小限のUI(LearningCard)を実装
- 学習用データベース(Prisma)を設計 : 学習カードを作成するため、単語(Word) と 画像(Image) を 1:1 で結びつけるスキーマにしました。音声はTTSで生成する方針のため、DBには持たせません。
ダミーデータから取得
今回触った技術
- TailwindCSS(UI調整)、Prisma(スキーマ更新)
悩んだこと
- 単語テーブルに持たせる最小情報の切り分け
- 音声データをDBに保存するか → 初期はTTS採用
type
とinterface
の使い分け
学んだこと・気づき
@@unique([userId, jaSurface])
により、同一ユーザー内での重複登録を抑止できる。@unique jaSurface
にすると全ユーザーに跨って一意になってしまうので要注意。type
とinterface
の使い分け(私の指針)- UIコンポーネントの Props →
interface
(拡張しやすく、IDE補完が分かりやすい) - DB戻り値から派生したユーティリティ型 →
type
(Union/Tuple等に強い)
- UIコンポーネントの Props →
次の目標
- Prisma + API 経由で実データ取得(ダミー除去/ダッシュボード)
- 画像アップロード(Firebase Storage) →
Image
作成 →Word.imageId
紐付け - UIに公開/下書きトグル(下書き保存 / 公開する / 下書きに戻す)
UIや機能についても作業しながら工夫すること