如何构建数据库以获得良好的crud功能和最佳响应时间

时间:2017-03-17 10:27:27

标签: mysql database data-structures

我有一个用于设计仓库管理系统的模式,到目前为止一直很顺利。我的数据库有几个表,但其中最重要的是发票表。我的问题是,当顾客来购买时,他可能会购买一件或多件物品,我想我可以将关于同一客户的每个条目都放入发票表中,然后制作唯一标识符或用于识别每个唯一标识的特殊代码客户和与他或她相关的项目,但我现在想知道是否有更好的方法这样做,如果可能的话,我可以生成功能,为每个潜在客户创建空间,可以购买多个项目的空间和。我在想数组列表可以提供帮助,但我对如何实现这样一个函数没有足够的知识来创建每个客户购买的项目的唯一列表并将其显示到J表。任何想法或参考都是非常受欢迎的。

这是表格:

TABLE INVOICES      

 Id,
 ItemDescription,
Invoice Number,
 Quantity,
 Transaction Type,
 Balance,
 Discount,
 Invoice Date,
 Amount Payed,
 Invoice Sum,
 Overall Total.


TABLE CUSTOMERS
     Id 
First Name,
 Last Name,
  Contact,
   Email,
 Location

我正在使用Java与MySQL和net beans IDE 8.0.2

1 个答案:

答案 0 :(得分:0)

抱歉,我不确定我完全理解你的问题。

对此进行建模的常用方法是:

Customer
------------
customer_id
....

Product
--------
product_id
....

Purchase_header
--------
purchase_id
customer_id
......

purchase_line
--------------
purchase_id
product_id
quantity
price_each
total_price
......

invoice
-------
invoice_id
purchase_id
amount
....

payment
-------
payment_id
invoice_id
amount
......

换句话说...... 客户有0..n购买

对于1件产品,购买有1..n个订单项,包含数量,每件商品的价格和总价

购买时有0..n个发票(将退款视为否定发票)

发票有0..n付款