Django ORM의 unique=True
Django에서 모델의 필드에 unique=True를 설정하면,
해당 필드의 값이 데이터베이스 내에서 고유해야 함을 의미
즉, 같은 값이 두 번 이상 저장될 수 없음
SQLAlchemy의 UniqueConstraint
SQLAlchemy에서는 UniqueConstraint를 사용하여
하나 이상의 컬럼에 대해 고유 제약 조건을 설정할 수 있음
이 제약 조건은 테이블의 정의에 포함되어,
데이터베이스에서 중복된 값을 허용하지 않도록 함
예시
Django 예시:
class MyModel(models.Model):
my_field = models.CharField(max_length=100, unique=True)
SQLAlchemy 예시:
from sqlalchemy import UniqueConstraint
class MyModel(Base):
__tablename__ = 'my_model'
id = Column(Integer, primary_key=True)
my_field = Column(String(100), nullable=False)
__table_args__ = (UniqueConstraint('my_field', name='uq_my_field'),)
결론
두 방식 모두 특정 필드에 대해 고유성을 보장하지만,
사용 방법과 설정 방식이 다름
Django는 필드 수준에서 설정할 수 있는 반면,
SQLAlchemy는 테이블 수준에서 제약 조건을 정의함