在sql中记录添加

时间:2015-05-25 19:41:42

标签: sql

我正在制作库存管理系统。 我想输入客户在product_sale表中购买的产品。

create table product_sale(
recipt# int primary key identity(1001,1),
product_id int,
product_name varchar(50),
brand_name varchar(50),
prchase_date date,
purchase_time time,
gross_price int,
discount_price int,
retail_price int,
quantity int,
)

问题是一个客户可以购买多个商品,并且它们将被插入多行但是 recipt#是主键,因此另一个客户会在另一个收件人上添加# 所以我该怎么做才能从 recipt#中删除主键约束 或更优先的东西......

2 个答案:

答案 0 :(得分:0)

Mu建议你应该通过分离订单项和收据ID来对该表进行非规范化。认为这是一个典型的例子,你可以在网上找到很多例子。

例如http://www.tomjewett.com/dbdesign/dbdesign.php?page=manymany.php

答案 1 :(得分:0)

--Product info--
CREATE TABLE PRODUCT
(
PRODUCTID INT NOT NULL,
PRODUCT_NAME VARCHAR2(20) NOT NULL,
CONSTRAINT PRODUCT_PK PRIMARY KEY(PRODUCT_ID)
);

--sales info--
CREATE TABLE SALES
(
RECIPT_ID SMALLINT DEFAULT (0) NOT NULL,
PRODUCTID INT DEFAULT (0) NULL,
CONSTRAINT SALES_PK PRIMARY KEY(RECIPT_ID),
CONSTRAINT SALES_PRODUCT_FK FOREIGN KEY(PRODUCTID) REFERENCES PRODUCT(PRODUCT_NAME)
);

编辑[1]:由于你详细说明了,我总是希望有两个不同的表,因为你想要在一张桌子上列出你的库存,然后在第二张桌子上你想要销售。这有助于将所有杂乱的东西远离您想要寻找的视图。