인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

객체를 저장하는 경우도 있나요?

해결된 질문

작성

·

352

0

안녕하세요. 혹시 디비에 객체를 저장하는 경우도 있나요?
예를들어 아래처럼 5개의 색상 키와 그 키에 해당하는 string을 값으로 가지는 객체 형태를 유저 정보에 저장하고 싶어요.

// Color 객체 예시 입니다.
{
    RED: string;
    BLUE: string;
    GREEN: string;
    YELLOW: string;
    PURPLE: string;
}


nest&typeorm는 처음이다보니 chatgpt의 도움을 많이 받고 있는데요. 객체는 저장이 되지 않지만 postgresql 에서는 이런 방법을 알려주긴하더라고요.



export class User extends BaseEntity {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  email: string;

  // 생략...

  @Column({ type: 'jsonb', nullable: true })
  categories: { [key in Color]: string } | null;

  // 생략...

 

이 5개에서 늘어나거나 줄어들일이 없어서 테이블을 만드는게 맞는지 고민이 돼서요. 위와 같이하는건 좀 이상한 방법일까요? 이럴거면 그냥 email:string 하듯이 RED:string 이런식으로 컬럼 5개로 저장하는 방법이 나을까요?

답변 1

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

5개에서 고정이면 각각을 컬럼으로 해서 5개 컬럼 만들면 됩니다. 물론 postgre나 mysql에서 json 데이터 저장을 제공하긴 하는데 명확한 이유가 없다면 쓰지 않는 게 좋습니다.

보통은 쓰지않는것이 좋군요! 감사합니다

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기