Chiranthaka Sampath Ответов: 2

Как сохранить купленные товары в базе данных POS


В точке продаж системы, как мы должны организовать таблицу базы данных, чтобы сохранить данные для хранения информации об отдельных покупках. Например, покупатель купит 1 кг муки за 1,10 доллара, 2 литра растительного масла за 2,25 доллара, 2 буханки хлеба за 1,05 доллара на общую сумму 4,40 доллара.

Номер счета-фактуры будет похож на 20160901-001002. Таким образом, все покупки должны быть сгруппированы в соответствии с номером счета-фактуры и сохранены в таблице базы данных. Итак, какие поля должны быть в таблице базы данных? Я использую MS SQL.

Что я уже пробовал:

Я пробовал добавлять таблицы со многими отношениями к маю, но не смог найти реального решения.

Mehdi Gholam

Читайте об отношениях мастер-деталь в базах данных.

Chiranthaka Sampath

Не могли бы вы предложить для этого структуру базы данных?

2 Ответов

Рейтинг:
1

cormaclee

Ой, спасибо Sahan2u! ваша рекомендация мне тоже очень помогла, потому что я искал, как решить это дело. отлично!


Sahan2u

Добро пожаловать, кормакли !

Рейтинг:
0

Sahan2u

Вы должны хранить этот счет в двух таблицах. Один для деталей заголовка и один для деталей уровня строки.

Например, в таблице заголовков вы должны хранить такие данные, как
InvoiceNo
атрибут CustomerID (это должен быть внешний ключ таблицы customer)
Дата
TotalAmount ... и т. д.


В таблице линейного уровня вы должны хранить такие данные, как
InvoiceNo (внешний ключ таблицы заголовков)
Артикул (внешний ключ таблицы элементов)
Цена
SoldQty ... и т. д.


Затем вы можете сделать следующий запрос, чтобы получить индивидуальные покупки. (Я пишу это, предполагая, что у вас есть отдельные таблицы для товара и клиента.)

SELECT 
    H.InvoiceNo
    ,H.Date as InvoiceDate
    ,C.ID as CustomerCode
    ,C.Name as Customer
    ,I.ID as ItemCode
    ,L.SoldQty
    ,L.UnitPrice * L.SoldQty as TotalForItem
FROM InvoiceHeader H
    INNER JOIN InvoiceLine L ON H.InvoiceNo = L.InvoiceNo
    INNER JOIN Customer C ON H.CustomerID = C.ID
    INNER JOIN Item I ON L.ItemCode = I.ID