데이터베이스 이름은 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 클래스의 속성에 대한 제약 조건을 정의하는 데 사용됩니다. 이를 통해 데이터 무결성을 유지하고 데이터베이스에 저장되는 데이터의 유효성을 제어할 수 있습니다.
'Wecode -기업협업 인턴 (부트캠프) > 기업협업 인턴(프로젝트)' 카테고리의 다른 글
기업협업 2번째 프로젝트: 서버 구동 후엔, 데이터베이스 연결 (0) | 2023.11.07 |
---|---|
기업협업 2번째 프로젝트: 깃허브 에러 해결 (0) | 2023.11.07 |
기업협업 2번째 프로젝트: api 작성과 서버 가동 (0) | 2023.11.07 |
기업협업 2번째 프로젝트 : 초기세팅 (2주차 화요일) (0) | 2023.11.07 |
기업협업 2번째 프로젝트(2주차 월요일: 구상 및 데이터베이스 설계) (0) | 2023.11.06 |