2010-10-15 5 views
-3

У меня есть данный сценарий, пользователь (мой клиент) хочет дать скидку на предстоящую благодарность за сезон. (или), если вы приобретете более чем $ X, он имеет право на бесплатную доставку.Mysql - изменение структуры базы данных - сценарий базы данных

  1. Чтобы реализовать описанный выше сценарий, каковы изменения в базе данных mysql , что нам нужно сделать?
  2. Как реализовать его в запросе?
+0

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

ответ

1

Вы точно не дали нам много информации, чтобы перейти на (например, схемы, например), но это звучит так, как будто у вас есть как минимум

  • новый столбец (ы) для хранения скидки информация, вероятно, в своем собственном таблице, ссылки таблицу цен с помощью внешнего ключа
  • какой-то логики (возможно, с помощью триггеров), которые могут отслеживать сумму совокупного заказа и установить флаг соответственно

Для их реализации вам понадобятся команды ALTER TABLE и т. Д., Чтобы выполнить ваш DDL. Они могут быть написаны сценарием или если вам нужна логика управления потоком (т. Е. Только добавление столбцов, если они еще не существуют), вам придется упаковать это в процедуру (в MySQL вы можете использовать только конструкции - if...else, если они выполняются из в рамках процедуры).

0

Такой сценарий не подходит в базе данных аккуратно. Конечно, вы можете хранить такие политики в базе данных, но на самом деле их применение к соответствующим запросам является серьезной болью. Лучше всего оставить логику на стороне клиента. Вам не только нужно модифицировать каждый запрос, связанный с корзиной покупок, но и вы должны указывать время/дату. Что происходит, когда продажа заканчивается? Наивная система просто установила бы скидку на 0%, но затем все предыдущие продажи потеряли бы скидку на бесплатную доставку.