Wecode -기업협업 인턴 (부트캠프)/기업협업 인턴(프로젝트)

기업협업 2번째 프로젝트: entity 작성

Queen Julia 2023. 11. 7. 14:19

데이터베이스 이름은 dblog 이고,

+-------------+--------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+-------------+--------------+------+-----+---------+----------------+

| id | int | NO | PRI | NULL | auto_increment |

| originalUrl | varchar(200) | NO | | NULL | |

| shortenUrl | varchar(200) | NO | | NULL | |

| created_at | timestamp | YES | | NULL | |

| user_ip | varchar(200) | YES | | NULL | |

+-------------+--------------+------+-----+---------+----------------+

5 rows in set (0.01 sec) 인데 entity.ts 작성해줘

 

 

import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn } from 'typeorm';

@Entity('dblog')
export class DbLogEntity {
  @PrimaryGeneratedColumn()
  id: number;

  @Column({ type: 'varchar', length: 200, nullable: false })
  originalUrl: string;

  @Column({ type: 'varchar', length: 200, nullable: false })
  shortenUrl: string;

  @CreateDateColumn({ type: 'timestamp', nullable: true })
  created_at: Date;

  @Column({ type: 'varchar', length: 200, nullable: true })
  user_ip: string;
}

 

 

위의 코드에서 DbLogEntity는 "dblog" 테이블의 열과 일치하는 속성을 가지고 있습니다. 각 열에 대한 정보가 @Column 데코레이터로 정의되고, Primary Key로 사용될 id 열은 @PrimaryGeneratedColumn 데코레이터로 정의되었습니다. @CreateDateColumn 데코레이터를 사용하여 "created_at" 열을 Entity에 추가하였습니다.

이 Entity 클래스를 사용하여 NestJS 애플리케이션에서 데이터베이스와 상호 작용할 수 있습니다. Entity 클래스를 생성한 후 해당 Entity를 NestJS의 TypeORM 모듈과 함께 사용하여 데이터베이스 작업을 수행할 수 있습니다.


 

nullable: false는 Entity 클래스의 속성(Column)에 대한 데이터베이스 열의 NULL 허용 여부를 나타내는 옵션입니다.

  • nullable: false: 이 옵션이 지정된 경우, 해당 열은 데이터베이스에 NULL 값을 저장할 수 없습니다. 열에는 항상 데이터가 존재해야 합니다.
  • nullable: true: 이 옵션이 지정된 경우, 해당 열은 데이터베이스에 NULL 값을 저장할 수 있습니다. 열에 데이터가 없을 수 있습니다.

예를 들어, originalUrl 및 shortenUrl 열에 nullable: false가 지정된 경우, 이 열에는 항상 값을 가지고 있어야 하며 NULL 값이 허용되지 않습니다. 반면에 created_at 및 user_ip 열에 nullable: true가 지정된 경우, 이 열에는 NULL 값을 가질 수 있습니다.

이 옵션은 데이터베이스 테이블의 열과 연결된 Entity 클래스의 속성에 대한 제약 조건을 정의하는 데 사용됩니다. 이를 통해 데이터 무결성을 유지하고 데이터베이스에 저장되는 데이터의 유효성을 제어할 수 있습니다.