[nestjs] 표준 단어 관리 API 만들기 02
이전 글
모델 분석
위와 같은 형태의 관계를 가질 수 있도록 구성 해보도록 하겠습니다.
모델 구성
아래와 같은 틀을 가지고 작성
model 모델명 {
// KEY
// FIELDS
// SHARES
// RELATIONS - ONE
// RELATIONS - MANY
}
모델 생성
// 단어 검색
model word_srch {
// KEY
id Int @id @default(autoincrement()) // 아이디
// FIELDS
krn_name String @db.VarChar(256) // 한글명
ngls_name String @db.VarChar(256) // 영문명
// SHARES
created_at DateTime @default(now()) // 생성일
updated_at DateTime @updatedAt // 수정일
// RELATIONS
}
// 표준 단어 사전
model stnd_word_dctn {
// KEY
id Int @id @default(autoincrement()) // 아이디
// FIELDS
ngls_name String @db.VarChar(256) // 영문명
ngls_bbrv_name String @db.VarChar(32) // 영문약어명
krn_name String @db.VarChar(256) // 한글명
// SHARES
created_at DateTime @default(now()) // 생성일
updated_at DateTime @updatedAt // 수정일
// RELATIONS - ONE
term_id Int // 표준 용어 사전 아이디
term_item stnd_term_dctn @relation(fields: [term_id], references: [id]) // 표준 용어 사전
// RELATIONS - MANY
}
// 표준 용어 사전
model stnd_term_dctn{
// KEY
id Int @id @default(autoincrement()) // 아이디
// FIELDS
term String @db.VarChar(256)// 용어
term_ngls String @unique @db.VarChar(256) // 용어영문
// SHARES
created_at DateTime @default(now()) // 생성일
updated_at DateTime @updatedAt // 수정일
// RELATIONS - ONE
dmn String @db.VarChar(32) // 도메인
dmn_item stnd_dmn_dctn @relation(fields: [dmn], references: [dmn]) // 표준 도메인 사전 목록
// RELATIONS - MANY
word_list stnd_word_dctn[] // 표준 단어 사전 목록
code_list stnd_code[] // 표준 코드 목록, 배열은 optional 처리가 되지 않음에 유의 => empty list
}
// 표준 코드
model stnd_code {
// KEY
term_ngls String @db.VarChar(256)// 용어영문
code String @db.VarChar(32) // 코드
@@id([term_ngls, code])
// FIELDS
code_vl String @db.VarChar(256)// 코드값
sort_rdr Int @db.SmallInt // 정렬순서
use_yn String @db.Char(1) @default("Y")// 사용여부
// SHARES
created_at DateTime @default(now()) // 생성일
updated_at DateTime @updatedAt // 수정일
// RELATIONS - ONE
term_item stnd_term_dctn @relation(fields: [term_ngls], references: [term_ngls]) // 표준 도메인 사전 목록
// RELATIONS - MANY
}
// 표준 도메인 사전
model stnd_dmn_dctn{
// KEY
dmn String @id @db.VarChar(32) // 도메인
// FIELDS
data_type String @db.VarChar(32)// 데이터 타입
// SHARES
created_at DateTime @default(now()) // 생성일
updated_at DateTime @updatedAt // 수정일
// RELATIONS - ONE
// RELATIONS - MANY
term_list stnd_term_dctn[] // 표준 용어 사전 목록
}
테이블 생성
npx prisma migrate dev --name "metadata"
위 커맨드를 실행하여 DB 마이그레이션(생성)을 진행한다
참조
모델 생성 시 @db.VarChar(32)
등과 같이 명시적으로 테이블의 타입을 지정하지 않으면 postresql 의 경우 아래와 같이 DB의 값이 지정됨에 유의한다.
String => text
Int => int4
autoincrement => serial4
DateTime => timestamp(3)
맺음말
이로써 Table 설계 까지 완료 하였고, 다음 시간에는 nestjs 에서 rest-api setup을 진행 해보도록 하겠습니다.
[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.
Upvoted! Thank you for supporting witness @jswit.