2016-07-26 4 views
1

고객에 대해 하나씩 두 엔티티를 생성해야하는 레일 앱을 작성하고 있습니다. 그러나 그들은 거의 동일한 데이터 속성이의 예를 이름, 정체성, 전화, 이메일주소에 대한 가정 해 봅시다 수 있다는 발생합니다. 내 질문에, 그것을 처리 할 수있는 두 개의 다른 테이블을 만들어야합니다 (하지만 그것은 나에게 중복) 또는이 경우 가장 좋은 방법은 무엇입니까?거의 동일한 데이터 속성을 가진 테이블 만들기

미리 감사드립니다.

답변

2

다른 모델을 선택 하겠지만 두 모델 모두 동일한 속성을 공유하지만 모델 및 데이터 수준 (다른 테이블)에서 깨끗한 방식으로 문제를 구분해야합니다. 새로운 모델을 필요로 할 가능성이 매우 높기 때문에 각 특정 모델에 대한 속성

ContactInfo (전화, 전자 메일, 주소)의 일부분 만 다른 모델로 구분하고 각 모델과 관련시킬 수도 있습니다.

동일한 테이블의 경로를 선택하면 Rails에서 STI (단일 테이블 상속)를 사용하고 각 특정 시나리오에 해당하는 적절한 방법으로 모델을 분리 할 수 ​​있습니다.

결국 나는 장기간에 더 간단하고 유지 보수가 가능한 방식을 선택해야한다고 생각합니다. 당신은 코드를 더 깨끗하고 나중에 당신을 위해 유지 보수 할 것이다 각각의 문제/모델에 별도의 비즈니스 로직을 가질 수 있도록

확인 http://api.rubyonrails.org/classes/ActiveRecord/Inheritance.html

+0

안녕하세요 @neydroid, 먼저 답변 해 주셔서 감사합니다. 사실, 나는 두 가지 가능성 (분리 된 테이블과 sti)에 대해 생각했지만, 나는 그들 각각의 아래면에 관심이있다. 그러나 나는 분리 된 것으로 고집 할 것이라고 생각한다. :) –

1

의 문서는 두 가지 별도의 모델과 테이블의 접근 방식으로 가야한다 앞으로도.

+0

안녕하세요? 답변, 고마워요. –

+0

환영합니다. 위로 올려 주실 수 있습니까? –

관련 문제