2011-01-19 3 views
1

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

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

Немного предыстории на бизнес-процессы.
- Клиент закажет продукт и укажет при оформлении заказа один раз или еженедельно/ежемесячно.
- Заказчик укажет местонахождение, в котором будет выбран заказ (это местонахождение относится только к заказу)
- Если значение заказа> 25.00, то принято иначе, оно отклоняется.
- Это заполнит orders_test и order_products_test таблицы соответственно

  • Человек на заднем конце будет иметь отчет, созданный для поставок за день на основании этих двух таблиц.
  • Они смогут распечатать его, и он сгенерирует список предметов, которые попадают в какое место. Исходя из следующих критериев.
  • date_of_next_scheduled_delivery = текущая дата
  • remaining_deliveries> 0
  • После того, как они удовлетворены списке рассылки они будут нажимать "Process Поставки" кнопку.
  • Это скорректирует order_products_test таблицу следующим образом
  • Вычесть 1 из remaining_deliveries
  • Вставить текущую дату в date_of_last_delivery_processed
  • на основе delivery_frequency (т.е. один раз, еженедельно, ежемесячно) будет менять date_of_next_scheduled_delivery
  • значения состояния в таблице order_products_test может быть активна, удерживаться или отменена, истек

Мне просто хотелось бы получить некоторые мнения, если я приближаюсь к g это правильно или я должен поцарапать этот подход и начать заново.

ответ

0

Несколько мыслей, хотя и не обязательно в комплекте (есть много на ваш вопрос, но, надеюсь, эти пункты помощь):

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

  • Что касается отслеживания следующей даты доставки, вы можете просто отслеживать день заказа. Если он повторяется - ежемесячно или еженедельно, независимо от того, что все исчисляется с этой первой даты. Большинство систем БД (MySQL, SQL Server, Oracle и т. Д.) Поддерживают более чем достаточную гибкость вычислений даты, поэтому вы можете рассчитывать это на лету, а не поддерживать такое известное расписание.

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

  • Учитывая вышеизложенное, держу пари, вы можете просто уйти с 2 из ваших 4 таблиц выше - Учет и заказ. Но опять же, если адреса доставки связаны с Аккаунтами, я бы действительно нарушил это. (но ваш вопрос выше не означает, что)

  • Не называйте свои таблицы суффиксом «_test» - это сбивает с толку.

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