Нужен дизайн предложения для базы данных - PullRequest
0 голосов
/ 28 марта 2020

У меня в приложении 2 таблицы, которые называются:

  1. Услуги (id, имя, lo go)
  2. Пакеты (id, имя, продолжительность, сумма, план оплаты) ,ilityid)

Удобства довольно просты. В пакетах план оплаты либо разовый , либо повторяющийся (рассрочка) . До сих пор все будет делать эту работу.

Теперь требуется следующее: пакеты могут иметь продолжительность 2, 3 или 5 лет , но сумма должна быть вычтена из клиента до 6 месяцев или, скажем, 12 месяцев .

Пример. Клиент берет пакет на 5 лет (например, 5000 долларов США) и хочет ежемесячно выплачивать сумму пакета в течение 1 года (5000 долларов США / 12). В этом случае клиент воспользуется услугами в течение 5 лет, но заплатит сумму в рассрочку на 12 месяцев.

Как мне выполнить это требование?

Должен ли я go для дополнительного столбца payment_duration

1 Ответ

2 голосов
/ 28 марта 2020

Это не совсем понятно для меня, но звучит так, как будто вы говорите:

Если paymentplan повторяется, то клиент платит amount периодически (ежемесячно?) в течение 6 или 12 месяцев.

Если paymentplan один раз, то клиент платит amount один раз.

Я предлагаю вам третью таблицу:

Платежи (id, packageId, сумма, duedate, paymentdate)

При создании пакета также создайте 1, 6 или 12 строк в платежах. Затем вы можете указать сумму, подлежащую оплате в каждом последующем взносе. Дедедат - это дата, за которую он должен. Дата платежа изначально NULL, потому что клиент еще не заплатил. Когда клиент платит, установите в качестве даты платежа дату оплаты (это может быть до или после даты).

Это позволяет найти платежи, которые не были оплачены и просрочены: *

SELECT ... FROM Payments WHERE paymentdate IS NULL AND duedate < NOW()
...