2015-08-11 2 views
-2

Я моделирую базу данных билетов на стадион. У меня есть TICKET, FAN, CARD, EVENT, SEAT и SECTOR объекты (и другие). Есть ареал 40k мест и 45 секторов. Цена рассчитывается как это более или менее:
SQL: используйте рассчитанное поле или оставьте его в программном обеспечении

  1. EVENT имеет базовую цену
  2. изменения цен в зависимости от SECTOR
  3. В зависимости от FAN возраста он может иметь скрытые скидки
  4. FAN имеет CARD и в зависимости от типа карты он мог бы иметь скидку

связан с 1: 1 ко всему, кроме CARD и SECTOR (но SEAT слаб по отношению к SECTOR, чтобы он мог видеть свой ключ)

Должен ли я рассчитать цену в моей базе данных? Только если мне нужно его хранить? Если да, как мне это сделать, оставьте это как вычисленное поле в TICKET?

Я надеюсь, что я был достаточно ясно, спасибо за каждый ответ EDIT: Я не хочу код SQL, чтобы вычислить его

ответ

0

Я считаю это хорошей идеей, что алгоритм, реализованный в базе данных, например, использовать один и тот же алгоритм и код из каждого приложения или веб-службы или что-то еще, что вы собираетесь построить в какой-то день.

Я бы создал хранимую процедуру для расчета цены. Вы будете называть эту процедуру всякий раз, когда хотите, чтобы цена была рассчитана.

Как только билет выдается, его цена фиксирована, поэтому вы обычно храните цену с билетом. Позже вы можете менять скидки, поэтому такой же билет становится дешевле, но тот, который уже продан, конечно же. Тем не менее, используйте хранимую процедуру для первоначального расчета цены билета. При выдаче билета сохраните эту текущую цену.

+0

Спасибо, это именно то, что я хотел знать –

Смежные вопросы