TypeORM을 사용한 엔티티 정의

hyejin·2024년 6월 7일
0

study-2024

목록 보기
6/16

엔티티(Entity)

엔티티란?

  • 사전적 의미
    엔티티는 개체를 의미하며, 사람이 생각하는 개념이나 정보 단위와 같은 현실 세계의 대상체, 실세계에 존재하는 유형 혹은 무형 정보의 대상이며 서로 구별이 되는 하나하나의 대상을 의미함

  • 컴퓨터 과학 분야에서의 의미
    database table과 매핑되는 class를 의미

엔티티 기본 컬럼

import { 
  Entity, 
  PrimaryGeneratedColumn, 
  Column, 
  CreateDateColumn,
  UpdateDateColumn,
  DeleteDateColume
} from "typeorm"

@Entity()
export class User {
	@PrimaryGeneratedColumn()
    id: number

    @Column()
    firstName: string

    @Column()
    lastName: string
  	
  	@CreateDateColumn()
  	createdAt: Date
  
  	@UpdateDateColumn()
  	updatedAt: Date
  
  	@DeleteDateColume()
  	deletedAt?: Date | null
  
}
  • @PrimaryColumn()
    엔티티의 기본키(PK) 컬럼으로 사용할 수 있는 다양한 유형의 컬럼을 정의할 수 있음

    @PrimaryColumn()
    직접 값이 설정되는 기본키 정의(기본값으로 숫자 또는 문자열 유형 사용 가능)
    @PrimaryGeneratedColumn()
    자동으로 증가하는 숫자형 기본키 정의
    @PrimaryGeneratedColumn('uuid')
    uuid를 기본키로 사용

    * 여러 컬럼을 조합하여 하나의 기본키 정의 가능

  • @Column()
    다양한 옵션을 사용하여 컬럼의 속성을 정의할 수 있음

    type: 데이터 타입 지정
    length: 문자열 타입의 컬럼에 대해 길이 지정
    nullable: 컬럼이 NULL값을 허용할지 여부를 지정(기본값 false)
    default: 컬럼의 기본값 지정
    unique: 컬럼의 값이 고유해야 하는지에 대한 여부 설정(기본값 false)
    primary: 기본키인지 여부 설정, @PrimaryColumn()이나 @PrimaryGeneratedColumn() 대신 사용
    name: 데이터베이스 테이블에서 사용할 컬럼명 지정

  • @CreateDateColumn(), @UpdateDateColumn(), @DeleteDateColumn()
    엔티티가 생성, 수정, 소프트 삭제될 때 타임스탬프를 기록하며, 날짜 및 시간 타입 지정할 수 있음
    * @DeleteDateColumn(): 실제로 데이터베이스에서 삭제되지 않고 논리적으로 삭제된 상태를 표시할 때 사용

    timestamp: 타임스탬프 값을 저장
    * 1970년 1월 1일 UTC를 기중으로 한 경과 시간을 초 단위로 저장
    (저장:'2024-05-29 14:33:21', 내부적으로: '1701239601')

    datetime: 날짜와 시간을 저장(MySQL, PostgreSQL 등 여러 데이터베이스에서 사용)
    date: 날짜만 저장
    time: 시간만 저장
    year: 연도만 저장

[참고]

https://namu.wiki/w/%EC%97%94%ED%8B%B0%ED%8B%B0
https://simple-coding-place.tistory.com/57

profile
노는게 제일 좋아

0개의 댓글