主キーとNULL制約

SQL入門 / 全 5

作成品質の確認

全チェックの通過状況

スライド 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

このスライドが付いているレッスンを開く