rails에서 belongs_to 마이그레이션 작성 규칙


모델에 belongs__to , has_many 같은걸로 관계를 연결해주고 있습니다

헌데 rails를 접한지 얼마안되서 외래키라던지 정규화에 대해서 마이그레이션 규칙을 잘모르겠습니다

그냥 references 형 으로 생성한 int형에 validate 만 외래키 걸어주면 되나요?

아니면 진짜 엄격하게 마이그레이션에서 FK 걸고 CASCADE 같은 옵션을 줘야 하나요?

책하고 가이드에서 모델항목과 association 항목을 보아도 이런 요령이 없네요

  • 2016년 03월 31일에 작성됨
    웹을 좋아함

조회수 208


1 답변


좋아요
4
싫어요
채택취소하기

database에서 무결성을 관리하려면 foreign key를 사용하면 되는데 애플리케이션에서 관리하는 방법도 많이 사용합니다. belongs_tohas_many association의 :dependent옵션을 사용하면 동일한 효과를 볼 수 있습니다.

예를 들어 has_many:dependent에는 다음과 같은 옵션이 있습니다.

  • :destroy owner가 삭제되면 관련된 객체의 destroy 메소드 호출 (callback 호출됨)
  • :delete_all owner가 삭제되면 database에서 삭제 (callback 호출 안됨)
  • :nullify foreign key를 NULL로 변경
  • :restrict_with_exception 관련된 객체가 하나 이상있으면 exception 발생
  • :restrict_with_error 관련된 객체가 하나 이상있으면 owner 객체제 error 추가

이러한 방식이 database에서 관리하는 것보다 다양한 옵션이 있고, 소스에서 명시적으로 보이는 점 등 장점이 더 크다고 생각합니다.

참고: http://guides.rubyonrails.org/association_basics.html

  • 2016년 03월 31일에 작성됨
    Polyglot Programmer

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close