Дизайн таблицы счетов - PullRequest
0 голосов
/ 13 июня 2011

Я создаю таблицу счетов для клиентов. Когда-нибудь им придется присылать мне комиссионные, а иногда я отправляю им комиссионные (остаток на счете). Как оформить таблицу счетов в этой ситуации?

Я придумал это решение, я не уверен, правильно ли это или каков альтернативный способ?

tbl_invoice
- invoice_id (PK)
- order_id (FK)
- invoice_date
- amount (copy the price from tbl_order.total table)
- status (Invoice Sent, Cancelled, Amount Received, Amount Sent)


tbl_Payments
 - invoice_id (FK)
 - amount_received (recieved commission fees from customer)
 - amount_sent (sent fees to customer)
 - date_received
 - date_sent

если tbl_invoice.amount равен -30.00, это означает, что клиент отправит мне комиссионные.

если значение tbl_invoice.amount равно 30,00, я отправлю клиенту сборы.

Мне нужно поле tbl_invoice.amount?

Если бы вы могли переделать мои таблицы, как это должно быть здорово.

Ответы [ 2 ]

2 голосов
/ 13 июня 2011

Несколько вещей:

  1. Нормализуйте статус счета-фактуры, чтобы он стал отдельной таблицей поиска, затем поместите идентификатор статуса в таблицу счетов-фактур, а не «Отправлено», «Отменено» и т. Д.

  2. Определенно сохраняйте сумму счета. Это может отличаться от значения цены в tbl_order.total, если вам когда-либо понадобится учитывать скидки. В любом случае, цифровые данные дешевы в хранении и будут быстрее запрашивать, если вам не нужно делать какие-либо объединения.

  3. Дайте таблице Платежей свой собственный столбец ID и сделайте его PK.

  4. Остальное выглядит хорошо. Существует случай наличия двух таблиц: одна для исходящих платежей, а другая для входящих платежей. Если вам действительно нужно хранить информацию о сумме и дате, то я не думаю, что вам нужно усложнять ее.

Спасибо, Крис.

0 голосов
/ 13 июня 2011

Вы должны отслеживать:

  • amount_due
  • amount_sent
  • amount_received

Все три важны.А в платежах также отслеживайте пошлину вознаграждения.

Наконец, для такого рода вещей обычно лучше использовать бухгалтерию Т-регистра (т. Е. Дебет / кредит).Это делает вещи намного чище, если вам когда-либо нужно беспокоиться о скидках, купонах, возвратах, возвратных платежах и т. Д.

...