사용하는 이유

  • 값을 미리 정의해서 사용될 수 없는 값이 들어오는 것을 방지
  • 데이터 정규화가 가능
  • ENUM의 데이터 추가는 간단하지만 수정이 어려움
    - black 에서 white로 수정시 유효하지 않는 black을 찾기 위해 테이블 전체를 다 찾아야 함
  • MySQL류 가 아닌 DBMS에서는 ENUM 을 지원 하지 않음

방식

MySQL

CREATE TABLE Locker (
    id INT AUTO_INCREMENT KEY,
    name VARCHAR,
    status ENUM('occupied', 'unoccupied', 'under management')
);

INSERT INTO Locker(name, status) VALUES ('seoul','occupied');

 

Squelize

const LockerStatus = {
  UNOCCUPIED: 'unoccupied',
  UNDER_MANAGEMENT: 'under management',
  OCCUPIED: 'occupied',
};


const Locker = sequelize.define(
  'lockers',
  {
    id: {
      type: DataTypes.INTEGER,
      autoIncrement: true,
      primaryKey: true,
    },
    name: {
      type: DataTypes.STRING
    },
    status: {
      type: DataTypes.ENUM(Object.values(LockerStatus)),
    },
  },
  { underscored: true },
);

+ Recent posts