вторник, 26 июля 2011 г.

Re: Как хранить разнотипные данные?

Rails предлагает способ сериализовать в YAML. Мне не нравится, предпочитаю pretty JSON, но не знаю, как с этим в R3.

26 июля 2011 г. 23:04 пользователь Vladimir <egotraumatic@gmail.com> написал:
Доброго времени уув. сообщество! У меня снова к вам вопрос.

Задача: Имеется продукт (Product) со своим набором стандартных
свойств. Для продукта необходимо предусмотреть добавление уникальных
для него атрибутов, для машины это - скорость, для холодильника,
например объем. Суть не об STI, когда имеется тип Car < Product и для
всех машин можно создать шаблон атрибутов, а о таком случае, когда
(при STI Или без него) один единственные продукт может иметь
собственный атрибут, которого нет у других продуктов того же типа.
Таблица product_attributes с полями attribute и value не подходит,
поскольку тип value может быть произвольным: строка, число, булево
значение, текст  и т.д. Как можно реализоовать это? Пока на ум
приходит только одно - хранить все в text, а потом числа и булевы
значения определять из например из to_i и/или регулярных выражений, но
этот способ мне кажется уродливым.

P.S. использовать документо-ориентированные БД не предлагать.

Благодарю за помощь!

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ

 Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
 Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
 Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
 
Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru

Комментариев нет:

Отправить комментарий