主キーとNULL制約
作成品質の確認
全チェックの通過状況
スライド 4 / 4枚、チェック 5 / 5項目が通過
スライドごと
完成後の5チェック
本文・学習内容
本文・演習・starter/solution・次クイズ・前後lesson・後続NULL lessonを再監査。4枚を主キー契約、キー選択、NULL許容設計、IS NULL演習の各1仕事へ分け、JOIN/FK、複合キー実装、COALESCE、COUNT/集計、正規化、indexを先取りしていない。
ソース・課題との接続
exact lessonKeyから4枚のauthored deckと各named panelへ実経路で到達。live loaderのstarterは5行で公開expectedResultに不一致、模範SQLはid 2・4の4列2行に一致。hiddenSchema/hiddenExpectedResultは双方NULLで片側脱落はないが、直書き耐性の追加はproduction教材データ側の非blocking hardening backlog。
見た目・操作
SQL専用10/10とgeneric mobile 1/1を通過。4枚desktop、実lesson開閉/再表示、print全枚、library、320/360/393pxの全枚開始/縦末尾、page 4の結果表横右端を別担当が原寸目視。修正後は文字切れ・衝突・不可逆crop・操作不能がなくP0/P1/P2なし。
再利用・パターンマスター
lookup-table、compare-two、editor-resultへ各枚ちょうど1件分類。本番と単体部品は同じLookupTablePanel、Pane、CodePanel、ResultTablePanelを直接使用し、fallback・孤立部品・新規renderer/type/asset/一品物はない。
型・テスト・回帰
前後lessonと後続NULL境界、exact deck内容、共有ResultTablePanel DOM契約、全画面QAを再確認。共有表の代表として5列、長いASCII、15行、result-focusを320px右端まで実測・原寸確認し、不要scrollや最終列欠落なし。repo-wide tscは既存大量errorで不合格だが対象5ファイルのerrorは0件。
変わる値を主キーにしない
メールアドレスのような業務上の値は、あとで変わることがあります。識別だけを担う id を主キーにすると、業務の変更から切り離せます。
自然キー(email など)
業務上の意味を持つ あとで変更されることがある 変更の影響が広がりやすい
サロゲートキー(id)
業務とは無関係な連番・UUID 識別専用として変更しない email の重複は UNIQUE で守る
users では id を PRIMARY KEY、email の重複は UNIQUE で別に守ります。
2 / 5
← → キーでも送れます