Причём тут это к проектированию БД? Если ваша цена зависит от чего-то там сверхъестественного, то это слой
бизнес-логики, который будет высчитывать цену в зависимости от каких-то параметров. В БД вы эту информацию только храните и всё
Проектирование больше относится к тому, как правильно хранить данные и распределять между многими таблицами. Правильно спроектированная БД имеет своё отражение на объектах в используемом вами языке программирования, когда вы будете эти таблицы маппить в типы.
Всё что дальше, это уже бизнес-логика
UPD:
Для этой задачи SKU (артикулы) могут быть не совсем подходящим решением, поскольку у вас динамическое ценообразование. По таблицам будет примерно следующая ситуация (Накидал на коленках):
services:
- id:uuid
- name:varchar
- description:varchar
options:
- id:uuid
- name:varchar
- price:float
orders:
- id:uuid
- duration:integer
- total_price:float
- service_fk:uuid
order_options:
- order_fk:uuid
- option:fk:uuid