Перечисления в Rails: столбец String или Integer? - PullRequest
4 голосов
/ 28 октября 2011

Я сейчас ищу правильный Rails для перечислений.

Я уже пробовал

  • enum_simulator
  • has_enum

    1. Оба используют строковый столбец в базе данных для хранения данных перечисления. Разве у целочисленного столбца не будет лучшей производительности или меньшего потребления памяти (при использовании MySQL)?
    2. Есть ли драгоценный камень, который уже может это сделать?

Большое спасибо!

Обновление: Я нашел гем simple_enum, который использует целочисленные значения для представления перечисления в базе данных. Он поддерживает рельсы 3.1 и в хорошем состоянии.

Ответы [ 2 ]

4 голосов
/ 28 октября 2011

Ruby Toolbox - ваш друг.https://www.ruby -toolbox.com / Categories / Active_Record_Enumerations

Я использовал enumerated_attribute с Rails 2.3 и Rails 3 с хорошими результатами.Да, он использует строковый столбец.

Строковые столбцы IMO лучше, чем целочисленные столбцы, поскольку они не подразумевают какой-либо порядок значений и облегчают понимание атрибута (обратный инжиниринг, если вы хотите) безглядя на исходный код.И обычно разница в производительности незначительна, особенно если у вас есть индекс на поле - и вы должны.

Использование поля MySQL enum оказалось сложным в Rails 2.3, проблема со схемами, не уверен, что этосохраняется в Rails 3.

0 голосов
/ 18 апреля 2013

Ищите этот драгоценный камень: enumerate_it . Я думаю, что это решает вашу проблему!

...