Да кто вообще первый придумал хранить файлы в БД? Руки поотрывал бы за такое. Даже если надо что-то быстро искать по контенту файла, никакого смысла хранить весь файл в БД нет.
Ловите
Актуальность - год назад.
Не все города на русский переведены. Первая колонка - id страны, на всяк. случай. Города не все, "крупные" только. Предел крупности не помню уже.
Заводите поле для клиента - текущий тариф.
Пишите триггер, который при insert в таблицу заказов пересчитывает "тяжелым" запросом (каким сказать сложно - Вы не указали логику подсчета) текущий тариф клиента и обновляете значение в таблице клиентов.
Можно не триггером, а по крону.