데이터베이스 제약의 분류와 실현

1562 단어

왜 구속을 써요?


데이터베이스 제약(constrain)은 데이터 테이블과 열을 설계하는 데 사용되는데 규범화되고 데이터의 형식과 범위, 그리고 데이터 테이블 간의 관계를 확보하는 것과 같다.

sqlite를 예로 들면:


column constraint: (열 구속)
  • check constraint:
  • t.column(email, check: email.like("%@%”))
    reference constraint:
    t.column(user_id, references: users, id)
    
  • collate constraint:
  • t.column(name, collate: .rtrim)
    t.column(email, collate: .nocase)
    

    table constraint: (표 제약)
  • UNIQUE constraint:The UNIQUE constraint ensures that all values in a column are different.

  • CONSTRAINT UC_Person UNIQUE(ID, LastName) - ID와 LastName 열 모두 고유
  • PRIMARY KEY constraint: 키 제약 --- 한 열을 표시하는 데 사용되며 여러 필드로 표시할 수 있습니다
  • CHECK constraint:t.check(balance >=0)

  • the form of a boolean expression(expression)Boolean expressions can be easily built using filter operators and functions.//CHECK ("balance">= 0.0)
    filterfunction으로 실행: bool 데이터 형식을 되돌려주는 방법을 전송합니다.
  • FOREIGN KEY constraint: 키 제약은 표와 표 간의 관계를 나타내고 열 제약의reference constraint와 달리 키 제약은 표와 표 간의 상호작용 기능을 필요로 한다

  • 상위 키를 수정할 때 하위 키 동작:
  • NO ACTION: 수정하지 않습니다
  • RESTRICT: 부모 키가 매핑된 하위 키가 있을 경우 삭제할 수 없음(for ON DELETE RESTRICT) 또는 수정할 수 없음(for ON UPDATE RESTRICT)
  • SET NULL: 부모 키가 삭제될 때(for ON DELETE SET NULL) 매핑된 하위 키가 NULL로 설정되거나 수정될 때(for ON UPDATE SET NULL)
  • SET DEFAULT: 서브키 열에 기본값이 설정되어 있지 않은 경우 SET NULL과 비슷합니다
  • CASCADE: 부모 키의 열이 삭제되면 모든 관련 열도 삭제되고 부모 키가 수정될 때 모든 하위 키의 외부 키도 수정됩니다
  • 좋은 웹페이지 즐겨찾기