2016-11-18 5 views
0

I가 다음 스키마 :혼동 체외 관계에 대한

schema "countries" do 

    belongs_to :lang, LanguageCode, foreign_key: :code 
    field :text, :string 

    timestamps 

    end 

    schema "languages_code" do 

    has_one :code, Country, foreign_key: :lang 
    field :text, :string 

    timestamps 
    end 

내가해야 너무은 languagecode에 속하는 세 번째 테이블을 만들려고 할 때 내 질문입니다 :

schema "table3" do 

    belongs_to :coun, CountryCode, foreign_key: :alpha2 
    field :text, :string 

    timestamps 

end 

을 어떻게해야합니까를 languages_code 스키마를 수정 하시겠습니까?

답변

1

내가 잘못하지 않는 한, LanguagesCode 모델에 belongs_to 관계를 나타내는 방법은 무엇입니까? 그럼 여부 언어 코드에 따라 여기에 속하는 하나 개 이상의 table3 행이있을 수 있다면, 당신은

할 것 :

schema "languages_code" do 

    has_one :code, Country, foreign_key: :lang 

    #For has_one 
    has_one :code, Table3ModuleName, foreign_key: :alpha2 

    #For has_many 
    has_many :code, Table3ModuleName, foreign_key: :alpha2 

    field :text, :string 

    timestamps 
    end 

은 물론 당신의 실제 이름으로, Table3ModuleName을 대체 할 것이다 모듈에 table3 테이블 스키마 정의가 포함되어 있습니다.

+0

혼동을 야기하는 것은 스키마를 어떻게 디자인해야하는지입니다. 개념은 때때로 이상합니다. ecto를 더 잘 이해하는 법? –

+1

@zero_coding 그건 정말 외계인의 질문이 아니에요, 내가 당신을 올바르게 이해하고 있다면 그것은 데이터베이스 설계 문제에 관한 것입니다. 나는 데이터베이스 설계와 관련하여 더 많은 도움을 드리 겠지만 도메인과 달성하고자하는 것에 대해 더 많이 알아야합니다. 원래 게시물을 수정하여 해당 게시물을 포함 시키십시오. –