2011-10-27 3 views
4

현재 열거 형에 적합한 레일스 젬을 찾고 있습니다. Rails 열거 형 : String 또는 Integer 열?

는 이미 enum_simulator
  • has_enum

    1. 모두 열거 데이터를 저장하는 데이터베이스에 문자열 열을 사용
      • 을 시도했다. 정수 열의 성능이 향상되거나 저장소 사용량이 줄어들지 않습니까 (MySQL 사용)?
      • 이미이 작업을 수행 할 수있는 보석이 있습니까?
  • 감사합니다.

    업데이트 : 정수 값을 사용하여 데이터베이스 내의 열거 형을 나타내는 simple_enum gem을 발견했습니다. 그것은 레일 3.1을 지원하고 잘 관리됩니다.

    답변

    4

    루비 도구 상자는 당신의 친구입니다. https://www.ruby-toolbox.com/categories/Active_Record_Enumerations

    저는 enumerated_attribute을 Rails 2.3과 Rails 3와 함께 사용하여 좋은 결과를 얻었습니다. 예, 문자열 열을 사용합니다.

    IMO 문자열 열은 값의 순서를 암시하지 않으며 소스 코드를 보지 않고 속성을 쉽게 이해할 수 있도록 (리버스 엔지니어링 할 수 있기 때문에) 정수 열보다 좋습니다. 일반적으로 성능 차이는 무시할 수 있습니다. 특히 필드에 색인이있는 경우에는 특히 그렇습니다. enumerate_it : 그것은 레일이 보석 3.

    +0

    감사합니다. 나는 그것을 들여다 볼 것이다. 열거 형에서 많은 중복 값이있는 경우 MYSQL에서 문자열 열의 데이터를 압축하는지 알고 있습니까? – alex

    +0

    @alex, 저는 그렇게 생각하지 않습니다. 왜냐하면 그것이 바로 enum이 무엇 때문 인지요. 그런데 upvote하는 것을 잊지 마라. –

    +0

    오케이 고맙습니다 ... 나는 좀 더 연구를 할 것입니다. 미안하지만 나는 현재 최대 득표를하는 데 충분한 명성을 얻지 못하고 있지만 가능한 한 빨리 결정을 내릴 것입니다. – alex

    0

    봐 지속되면 MySQL의 enum 필드를 사용

    확실하지, 스키마와 함께, 레일 2.3에서 문제를 복잡하게 입증되었다. 나는 그것이 당신의 문제를 해결한다고 생각합니다!