내가 열이 기본 키 및보기의 레일 '지점에서 외래 키가되고 싶어요. 즉 references
메서드를 사용하는 외래 키입니다. 내가 좋아하는 일을하고 싶습니다 :
def change
create_table :VipPerson, id: false do |t|
t.primary_key :person_id
t.references :person, :id, column: :person_id
t.timestamps
end
end
가 나는 또한 (아래 참조) 사람 모델을 가리 키도록 레일 모델에 사용되는 사용자 정의 기본 키를 갖고 싶어. 이것은 실제로 SQL 데이터베이스에 의해 사용되는 외래 키와 관련이 없습니다 (Rails는 Demi Magus가 지적한 Rails 4.2까지 실제 외래 키 작성을 지원하지 않았습니다).
-
내 레일 프로젝트에 여러 테이블 Interitance (MTI)를 실현하고 일반적으로 관계형 데이터베이스에서처럼, 따라서 상속을 실현하려는: 나는 쓸 필요가 이것에 대한 그래서
table: Person
-------------
(PK) ID
Name
...
table: VipPerson (specalization of Person)
----------------
(PK) (FK) Person_ID
VIP-Status
...
속성 (여기서 Person_ID
)을 (사용자 지정) 기본 키와 외래 키로 동시에 선언하는 마이그레이션입니다. 필자는 Rails의 마이그레이션 DSP 방법으로이 작업을 수행하는 방법을 알지 못합니다.
데이터베이스의 데이터 무결성을 보장하기 위해 Rails의 다형성 연결을 사용하고 싶지 않습니다. 나는 Rails 모델을 커스터마이징 할 필요가 있지만, 그 주제에 도달하지는 않는다. 주된 문제는 PK를 FK로 만드는 마이그레이션을 작성하는 방법입니다 (또는 그 반대).
실제로 이것은 매우 도움이됩니다. 감사합니다. 나는 또한 그것을 사용할 것이다! 그러나 어쩌면 나는 조금 모럴 특유해야만했다. 칼럼을 외래 키로, 레일스 관점에서 기본 키로하고 싶습니다. 즉, t.primary_key 및 t.references와 같은 것을 동일한 열에 매핑하려고합니다. 원래 질문에 의사 코드를 추가했습니다. – ZeroMax
문서에서 찾지 못했다면 찾고있는 것을 할 수있는 방법이 없을 것입니다. 또한 레일스의 마지막 버전은 한 달 전에 출시되었으므로 그것에 대해 전문가를 찾는 것이 매우 새롭고 어려웠습니다. 내 대답이 유용하다면 나는 업보트에 감사 할 것이다 : D. 행운을 빌어 요, D –
죄송합니다. 제 제제가 당신을 잘못 인도했을 수도 있습니다. 내 질문은 실제로 최신 버전의 Rails에 국한되지 않습니다. 이 문제는 실제로 ActiveRecord가 시작된 이후부터 적용됩니다. 이와 같은 데이터베이스 구조는 일반적인 경우이며 Rails가 등장하기 전에 주위를 둘러 보았습니다. 실제로 이와 같은 시나리오가 일반적이기 때문에 실제로는 아무런 해결책이 없다고 저는 생각하지 않습니다. 오후 8시 30 분 P.S. 제 의원은 아직 투표 하기엔 너무 낮습니다. Q___Q – ZeroMax