Докато моето приложение Rails узрява, става все по-очевидно, че има силен вкус на хранилище за данни, липсва му само таблица с факти, за да бъде всичко ясно.
Освен това току-що прочетох глави 2 (Проектиране на красиви API) и 3 (Овладяване на динамичния инструментариум) от Най-добри практики за Ruby.
Сега се опитвам да разбера как най-добре да проектирам частта за извличане на факти...
Да кажем, че имам следните размери (съществуващи модели в приложението):
- Продукт (съдържа средства)
- фонд
- Измерване (напр. общо съхранение, средно съхранение, средна експозиция)
... и един добър стар факт с общо предназначение:
- Факт (дата, стойност плюс NULLable колона с външен ключ за всяко от моите измерения)
Някои аспекти, за които ще съм благодарен да получа съвет:
- Какво може да представлява гъвкав интерфейс за извличане?
- Какво се случва, ако имам Facts както с NULL (т.е. всички или не ме интересуват), така и с NOT NULL (конкретни) стойности за измерение? Псевдо-стойност като
:all
? Или трябва да се прилага някаква конвенция? - Как да избера само подмножество от стойности на измерение? Или да изключите подмножество? :само и :изключи?
- Някой имал ли е опит със създаването на
named_scope
s, за да се справи с това? Има очевидното привличане да можем да свържем по едно за всяко измерение, което ни интересува, но става ли твърде тромаво, ако стигнем до 7 или 8 измерения?
(Знам, че се смята, че плъгин acts_as_fact
съществува под някаква форма (поне имаше малък шум на RailsConf 2006), но не можах да намеря никакъв код или описание как може да е работил.)
Версии: Rails, ActiveRecord 2.1.2, Oracle Enhanced Adapter 1.2.0
РЕДАКТИРАНЕ: Разгледах ActiveWarehouse и имам някои резерви: - основният клон не е имал ангажимент от 8 ноември насам и изобщо няма активност от 9 януари насам; - урокът датира от 2006 г., признава се за остарял и 404s за мен; - изглежда, че иска да избяга от ActiveRecord - голяма част от приложението ми ще остане в AR и мисля, че в момента искам решение за AR.
Така че ще се пазя от това, благодаря!