테이블 구조와 한 행이 나타내는 대상을 구분합니다.
테이블은 같은 종류의 사실을 모으고, 한 행은 하나의 대상이나 사건, 열은 그 대상의 속성을 나타냅니다. 스키마는 테이블·열·타입·제약조건을 포함한 데이터 구조의 계약입니다.
courses 한 행은 강좌 하나를, enrollments 한 행은 수강 사건 하나를 표현하도록 한 테이블에 한 종류의 사실만 담습니다.
열 이름은 의미가 드러나는 snake_case로 정하고 단위와 시간대처럼 해석에 필요한 기준을 문서화합니다.
MariaDB는 컬럼에 선언한 타입을 강제하지만 SQLite는 넣은 값의 실제 타입을 그대로 저장합니다(type affinity) — 스키마를 옮길 때 이 차이를 놓치면 잘못된 타입의 값이 조용히 저장될 수 있습니다.
course1, course2처럼 반복 열을 만들면 검색과 확장이 어렵습니다. 반복되는 값은 별도 행이나 관계 테이블로 분리합니다.
직접 바꿔보세요status 열을 추가해 공개 상태를 저장하고 공개 강좌만 조회하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.