Вообщем-то согласен.
У самого подобная задача стоит.
Пока додумался до того, что бы всё базу опписать функциями и view'хами.
У каждого обьекта есть три дейсвия (у меня): покупка, использование, продажа.
Дело в том, что цена у меня зависит от очень многих факторов, и не для каждого товара алгоритм одинаковый.
Пока придумал вот, что:
при создания товара, писать три функции, возвращающие мне нужные результаты.