꽤 간단한 질문처럼 보입니다. 그러나 온라인에서 특정 응답을 찾을 수없는 것 같습니다.여러 열의 고유 인덱스에서 한 열에 NULL 값을 허용하는 방법
견적과 광고 항목 모두를 참조하는 price
모델이 있으므로 및 line_item_id
열이 있습니다. 동일한 line_item에 대한 여러 가격이 견적에 첨부되지 않도록하려면 복수 열 인덱스 unique: true
을 사용하고 있습니다. quote_id
은 색인의 첫 번째 열입니다.
그러나 사용자가 가격을 line_items
에 추가 할 수 있도록 허용하고 싶습니다. 하나의 가격으로도 제대로 작동하지만 은 null이고 line_item_id
이 있습니다. 그러나 고유 색인을 사용하면 두 번째 가격을 동일한 line_item
에 첨부 할 수 없습니다. quote_id
의 널 (NULL) 값은 고유 한 것으로 처리됩니다.
고유 제한 조건을 인용 부호가 null이 아닌 경우에만 적용 할 수있는 방법이 있습니까?
allow_nil
은 모델 검증에 사용할 수 있지만 인덱스에서 사용할 수 있습니까?
내가 같은 생각입니다 :
add_index :prices, [:quote_id, :line_item_id], :unique => true, :allow_nil => true
PostgreSQL을하고 레일 4
링크를 이용해 주셔서 감사합니다. 따라서 allow_nil은 필요하지 않지만 문제는 열 순서대로 나타납니다. 만약 내가 배치 : line_item_id 전에 : quote_id 색인에, 내가 quote_id에 대한 NULL로 여러 동일한 line_item_ids 찾고 무엇을 허용해야합니다. – FothMan