Возник следующий вопрос: сервис продает определенные услуги. У каждой услуги есть несколько цен со своим сроком действия.
Service: id, name
Service_price: service_id, period, price
Таблица Service никогда не меняется. Как лучше хранить факты покупки данных услуг?
Варианты следующие:
В первом варианте возникает избыточность.
Во втором варианте придется запретить изменять существующие данные в таблице (добавить поле is_active = false для устаревших цен) и разрешить только добавлять новые.
Какой подход более удобен и практичен? Данные по проданным услугам используются в отчетности с группировкой по периодам и ценам.
При реализации по варианту 2 достаточно, например, ввести скидку некоторым категориям клиентов, чтобы развалилось всё и сразу.
В данном случае имеет место ошибка анализа. Совокупность хранящихся в таблицах Service и Service_price данных представляет собой не справочник (данные-атрибуты) связанных со сведениями о платежах данных, а шаблон, который с платежами никак не связан (в момент создания записи о платеже связь между ней и использованным для её формирования шаблоном разрывается).
Так что только вариант 1. И это НЕ дублирование.
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Всем привет! Есть кластер (2 ноды + 1 арбитратор)Запросы на него идут через maxscale proxy, настроенную таким образом, чтобы все запросы (и чтения и записи)...
Хочу сделать, что бы в одно запросе, проверялось условие, и в зависимости от этого, строка принимала, то или иное, значение