2013-03-31 2 views
0

인보이스 발행 앱을 만들고 있습니다. 명백한 모델은 date, client_id, user_id 등이있는 인보이스입니다. 그러나 인보이스에는 전체 송장 금액을 합한 하나 이상의 항목이있을 수 있습니다. 각 광고 항목에는 설명, 요율 및 수량이 있습니다. 다른 모델 "LineItem"을 만드는 것이 합리적입니까, 아니면 인보이스 모델 내에 모든 것을 유지하는 더 쉬운 방법이 있습니까? 감사!송장 모델을 어떻게 구현해야합니까?

+0

이 소리는 "invoice_id"필드가합니다. 그것을 밖으로 시도하십시오. – spullen

답변

0

InvoiceItem 모델을 확실히 구현할 것입니다. Items는 프로그램의 객체 유형이므로 조작 할 수 있으므로 다른 테이블로 구분하는 것이 좋습니다.

class Invoice << ActiveRecord::Base 
    has_many :invoice_items 
end 

class InvoiceItem << ActiveRecord::Base 
    belongs_to :invoice 
end 

은 그럼 그냥 확인 InvoiceItem 당신이 아이디어를 가지고 같은

1

데이터베이스 테이블을 표준화하려면 말한대로 두 개의 다른 테이블이 있어야합니다. 그렇지 않으면 관계형 데이터베이스의 정규화 규칙에 맞지 않습니다. 정보 http://en.wikipedia.org/wiki/Database_normalization을 확인할 수 있습니다.

두 테이블 인 Invoice와 LineItem을 사용하십시오. 그리고 Invoice 테이블 Id를 참조하는 외래 키를 LineItem 테이블에 넣어야합니다.

관련 문제