Sql 如何在采购页签中插入不同价格的数据而不进行数据推导

Sql 如何在采购页签中插入不同价格的数据而不进行数据推导,sql,oracle,database-design,entity,Sql,Oracle,Database Design,Entity,我已经创建了一个表名作为购买 CREATE TABLE purchase( item_id NUMBER(20) PRIMARY KEY, purchase_qty VARCHAR2(50), sup_name VARCHAR2(50), purchase_price NUMBER (10) ); 并插入数据 INSERT INTO purchase VALUES(0001,170,'MG Trading',100); 我想以不同的价格插入相同的项目名称,例如120,因为项目id

我已经创建了一个表名作为购买

 CREATE TABLE purchase(
item_id NUMBER(20) PRIMARY KEY,
purchase_qty VARCHAR2(50),
sup_name  VARCHAR2(50),
purchase_price NUMBER (10)
);
并插入数据

    INSERT INTO purchase
VALUES(0001,170,'MG Trading',100);
我想以不同的价格插入相同的项目名称,例如120,因为项目id=主键,如果插入到另一行而没有PK,则会出现效果数据冗余问题,然后我必须删除主键并插入另一个值

INSERT INTO purchase
VALUES(0001,30,'abc_company',120); 
现在项目总数量170+30=200客户需要数量180我如何销售??因为我的产品是油型产品,无法打印油的条形码
此实体包含一个油泵应用程序

您不能在主键上有两个具有相同值的寄存器,其他列的值无关紧要

我认为,正如@GordonLinoff所说,你的模型就是问题所在


您应该这样做。

您的数据模型似乎有问题
ItemId
应该是Items表的主键,而不是Purchases表。@GordonLinoff如果我创建了另一个表item\u id pk和purchase table item\u id FK,我可以为我的油型产品计算它???@GordonLinoff是正确的。采购表中应该有一个寄存器,而Items表中应该有多个寄存器。有人在这次购买中购买了很多物品。@GordonLinoff以前我创建了物品表,也做了,但我的问题是听到相同的物品id不同的价格产品是石油,比如柴油辛烷值手机我不能为产品附加条形码,也不能存储在不同的地方如何销售?我已经准备好了如果要创建模型,则无法将ItemId放入采购表中。如果是这样,您将只能在采购记录中插入一个项目。您确实需要了解关系数据库建模。请阅读:-我认为这篇文章将帮助您完美地建模您的数据库。好文章我已经准备好学习RDMS,如果我想要创建应用程序CNG燃油系统,我如何创建RDMS数据库?燃油价格一直在上涨下跌,我想你发现了我的问题,谢谢