Database 매뉴얼 · Chapter 3

title: "스키마 적용 — 빌트인 템플릿 order_history" chapter: 3 images:

  • database-studio-structure.png
  • database-studio-templates.png

스키마 적용

QMachineStudio 는 자주 쓰는 테이블 스키마를 빌트인 템플릿 으로 제공합니다. JSON 을 직접 작성할 필요 없이 콤보에서 고르고 [Apply] 한 번이면 끝납니다.

Database Studio · Structure 탭

화면 진입

Solution Explorer
└── Data Editor Pages
    └── Database
        └── Database Studio   ← 이 화면

상단 Connection 콤보에서 등록한 연결(local) 을 고르고 [Open] 을 누릅니다. 우측 상태등이 ● OPEN 으로 바뀌면 연결이 열린 상태입니다.

빌트인 템플릿 두 가지

템플릿용도
order_history조리/공정 1건 단위 이력 (이 매뉴얼의 기본 시나리오)
log운영 로그 (시간 / 레벨 / 메시지)

이 매뉴얼에서는 order_history 를 사용합니다. log 는 같은 절차로 적용 가능합니다.

order_history 컬럼

컬럼타입비고
idintegerPK · AutoIncrement
order_notextNOT NULL — 주문/작업 식별자
menu_nametext메뉴 / 레시피 이름
start_timetextdefault CURRENT_TIMESTAMP (자동 채움)
end_timetext조리 종료 시각
weight_grealdefault 0 — 계량 결과 (g)
resulttextOK / NG / SKIP
is_errorintegerdefault 0 — 에러 플래그

자동 생성되는 인덱스:

인덱스컬럼사용 시나리오
idx_order_noorder_noUPDATE / 조회 시 단건 lookup
idx_order_startstart_time일자별 통계 SQL 가속

적용 절차 — 6 단계

  1. Connection 콤보local 선택 → [Open]
  2. Structure 탭으로 이동
  3. Template 콤보 클릭 → order_history 선택
    (콤보가 비어 있다면 [Refresh Templates] 로 새로고침)
  4. 우측에 컬럼 목록이 자동으로 채워집니다 (편집 가능)
  5. [Apply] 클릭 → 내부적으로 CreateTableFromJson 이 호출되며 인덱스도 함께 생성
  6. 좌측 Tables 목록을 새로고침 → order_history 가 등장하면 완료
Template 콤보에서 order_history 선택

적용 결과 (참고용 JSON)

Save JSON… 버튼으로 같은 정의를 파일로도 보관할 수 있습니다. 출력 형식은 다음과 같습니다.

{
   "columns": [
      { "name": "id",         "type": "integer", "pk": true, "autoincrement": true },
      { "name": "order_no",   "type": "text",    "notnull": true },
      { "name": "menu_name",  "type": "text" },
      { "name": "start_time", "type": "text",    "default": "CURRENT_TIMESTAMP" },
      { "name": "end_time",   "type": "text" },
      { "name": "weight_g",   "type": "real",    "default": 0 },
      { "name": "result",     "type": "text" },
      { "name": "is_error",   "type": "integer", "default": 0 }
   ],
   "indexes": [
      { "name": "idx_order_no",    "columns": ["order_no"]   },
      { "name": "idx_order_start", "columns": ["start_time"] }
   ]
}

저장 위치는 XDatabase\Schema\order_history.json 권장합니다 — 운영 중 변경 이력을 git 으로 추적할 수 있습니다.

Grid View 와 JSON Preview

Structure 탭은 두 모드를 토글할 수 있습니다.

모드용도
Grid View (edit)표 편집기. 컬럼 추가/삭제/순서 변경, PK · AutoIncrement · NotNull · Default 체크
JSON Preview (read only)적용 직전의 최종 JSON 확인. 변경은 Grid 에서

컬럼 추가 · 삭제

기존 빌트인 템플릿에서 컬럼을 더 늘리고 싶다면:

  1. Template 콤보에서 order_history 선택 (기본 컬럼 채워짐)
  2. [+ Add] 또는 [+ Add common ▼] 으로 컬럼 추가
  3. 표에서 직접 타입/PK/AutoIncrement/NotNull/Default 편집
  4. [Apply] — 기존 테이블이 이미 있으면 ‘Drop 후 재생성하시겠습니까?’ 확인 다이얼로그
  5. 확인 시 데이터는 삭제 됩니다 — 운영 중 컬럼 변경 시 반드시 사전 백업

인덱스 편집

화면 하단 Indexes 영역에서 [+ Add Index] 로 추가합니다. 컬럼 다중 선택은 [Add Index] → 다이얼로그에서 체크박스로.

체크포인트

  1. 좌측 Tables 목록에 order_history 가 보인다.
  2. SQL 탭에서 SELECT * FROM order_history 실행 시 컬럼 8개 모두 나타난다 (행은 0건 OK).
  3. SQL 탭에서 PRAGMA index_list(order_history) 실행 시 idx_order_no · idx_order_start 가 보인다.

자주 묻는 질문

Q. 같은 화면에서 테이블을 삭제할 수 있나요? 좌측 Tables 목록에서 우클릭 → Drop Table. 또는 Structure 탭에서 [Drop] 버튼. 둘 다 데이터가 삭제됩니다.

Q. MSSQL 에도 같은 템플릿을 쓸 수 있나요? 가능합니다. MapJsonTypeToSql 가 SQL Server 방언으로 변환합니다 (integerINT, realFLOAT, …). 다만 CURRENT_TIMESTAMP 의 정밀도와 AUTOINCREMENT 의 동작이 SQLite 와 미묘하게 다르므로, 원격 운영 데이터베이스에는 사전에 작은 시나리오로 동작 확인을 권장합니다.

Q. 빌트인 템플릿이 더 늘어나나요? 프로젝트별 자주 쓰는 패턴이 정해지면 빌트인으로 추가될 예정입니다. 현재는 order_history · log 두 가지입니다.

다음 단계

4장 — SQL · Data 탭으로 동작 확인