문제

Subsonic 3 ActiveRecord를 사용하여 외부 키가있는 기존 데이터베이스에서 코드를 생성했습니다. 데이터베이스를 전환 할 때 데이터베이스 스키마가 항상 올바른지 확인하려면 앱 시작 부분에 마이그레이션 코드를 배치했습니다. IDataProvider.MigrateToDatabase<내 수업>() ActiveRecord.tt에 의해 생성 된 각 클래스에 대해. 마이그레이션 코드는 외래 키를 재생하지 않습니다.

FKS를 어떻게 처리해야합니까?

  • FK를 모두 잊어 버리고 코드에서 계단식 삭제를 처리하십시오. 장점 : Rails Way, 비즈니스 로직은 코드에 보관됩니다. 단점 : 트랜잭션을 처리해야합니다. 코드는 훨씬 더 추악 해집니다. 데이터베이스와 ActiveRecord 간의 스키마 왕복은 데이터베이스가 전환/지우는 경우 불가능 해집니다 (원래 스키마를 AR 코드를 재생/수정하여 항상 원래 스키마를 유지해야합니다. 그렇지 않으면 일대일 속성이 손실됩니까?); 또한 동료들은 내가 화가 났다고 생각할 수도 있습니다.
  • 마이그레이션에 단계를 추가하여 수동으로 FK를 작성하십시오. 장점 : 스키마는 항상 최신 상태입니다. AR 코드는 항상 재생할 수 있습니다. 단점 : 데이터베이스 종속성 (사소한 문제?)
  • 어떻게 든 스키마를 올바르게 마이그레이션 할 수 있도록 코드에서 FK 관계를 정의하는 방법을 찾으십시오.

내가 잘못하고 있는가? 조언에 감사드립니다.

도움이 되었습니까?

해결책

나는 수업을 위해 지금 FK 작업을하고 있으며 믿거 나 말거나 믿거 나 말거나 매우 어렵습니다. 부모 수업에 자녀 수업 목록이 포함되어 있다면 - 많은/많은가요? 어쩌면 - 자녀 수업에 참조가 포함되어 있다면. 그것은 약한 가정입니다 (양방향은 좋은 디자인이 아닙니다).

그래도.

AR은 DB -First People에게 더 많은 의미가 있으므로 원하는대로 DB를 만들고 AR 템플릿을 실행하십시오. 당신의 FK는 영광입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top