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

조회수 1706회

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

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

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

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

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

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 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

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)