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

Я создаю приложение для управления складом и выставления счетов. Склад состоит из всех поддонов, так что это очень просто, один поддон = X долларов в месяц. Но я изо всех сил пытаюсь продумать лучший дизайн базы данных для отслеживания того, что и когда нужно оплачивать. Поддон может стоять день, месяц, год и т. д. Они приходят и уходят, казалось бы, через случайные промежутки времени. У одного клиента может быть более 1000 поддонов, которые прибыли в разное время.
Как мне лучше всего структурировать базу данных и логику, чтобы отслеживать, за что выставлен счет, а за что должен быть выставлен счет?


person bairdmar    schedule 17.08.2016    source источник


Ответы (1)


Таблица 1. Поддоны (PalletID (PKey), стоимость в месяц)

Таблица 2: владения (HoldingID(PKey), Customer ID, CustomerName, PalletsID, StartDate, ReturnDate )

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

  1. Клиент Х:

  2. Дата начала: ХХХХ:ХХ:ХХ

  3. Дата возвращения: ХХХХ:ХХ:ХХ

  4. Получить количество месяцев между этими двумя датами.

<сильный>5. Сумма счета будет рассчитываться *Стоимость поддона

Надеюсь это поможет

person Dheeraj Kumar    schedule 17.08.2016
comment
Спасибо за ответ. Еще несколько конкретных вопросов. скажем, поддон прибывает 15 июля и отправляется 20 августа. Это 2 цикла выставления счетов. Мне нужно как-то пометить его как отправленное, но все равно нужно выставить счет за дополнительный месяц, а затем, конечно, не выставить счет за следующий месяц. Как бы я справился с этим? - person bairdmar; 17.08.2016
comment
У вас будет две даты 2016:07:15 и 2016:08:20. Используя множество встроенных методов, вы можете рассчитать количество различных месяцев между этими двумя датами. и просто noOfMonths*стоимость поддонов - person Dheeraj Kumar; 17.08.2016
comment
Хороший ответ. Несколько советов… Стандартный формат даты использует дефисы, а не двоеточия, например ГГГГ-ММ-ДД. по состоянию на 23 января 2016 г. Используйте класс java.time.LocalDate для представления дат, если у вас есть только одно местоположение и вам не нужны часовые пояса (в любой момент дата зависит от часового пояса). - person Basil Bourque; 17.08.2016