Как реализуют прайсы?
Делается то, что у вас названо "ревизия прайса".
Есть таблица orders. в ней что за человек, контакты, дата покупки.
Для примера: 
id | name | date 
------------------
17| Василий | 01.05.2015
Есть таблица purchases, в ней построчно что за покупка, цена, и главное идентификатор из таблици orders. Т.е., три покупки = три записи. 
id | order_id | price | name 
------------------------------
1 | 17 | 100 | Трактор
2 | 17 | 200 | Велосипед
3 | 17 | 300 | Горшок
Если база, допустим sql, то делается запрос вроде такого:
select o.name as fio, o.date,  p.price, p.name as product_name from orders o inner join purchases p ON(o.id=p.order_id) where o.date='01.05.2015'
на выходе получаем следующее:
fio | date | price | product_name
--------------------------------------
Василий | 01.05.2015 | 100 | Трактор
Василий | 01.05.2015 | 200 | Велосипед
Василий | 01.05.2015 | 300 | Горшок
Из o.* можно ничего не тащить, если вам нужен только ценник за дату. Либо  использовать between в условии, если нужна выборка за диапазон дат.