npm run
从这个表示例中,我试图理解这两个依赖项。根据我的说法,部分依赖关系有一个主要的复合键,而且传递不具备。
我认为主键是 Ord_no和Prod_id 。不确定Cust_id
依赖于整个键的唯一非键列是Quantity。所有其余的都是部分依赖。在此表中不确定是否存在传递依赖
表中的部分依赖性是: •Cust_id和名称 •Prod_id和Decr
表中的传递依赖性如下: •Ord no_和Ord_date可以吗?
更新1 - 我试图找出但不确定我的答案。 我只想澄清像订单号是否唯一,并确定客户所以两个不同的 order_no 81& 88 可以拥有相同的客户ID C001 。 因此,我认为没有传递依赖。
答案 0 :(得分:1)
我在当前表中看到许多可以重构的依赖项:
Cust_id
最有可能确定客户名称Ord_no
确定该订单中包含的产品集PROD-ID
确定该产品的说明我建议使用以下架构,涉及四个表:
Customers
Cust_id (PK) | Name
C001 | Pink
C009 | Black
C0075 | Red
Products
PROD-ID (PK) | Descr
P004 | Jane
P005 | Chisel
P015 | Saw
P033 | Punch
Orders
Ord_no (PK) | Ord_Date | Cust_id
056 | 16-APR | C009
081 | 15-APR | C001
088 | 18-APR | C001
099 | 16-APR | C0075
OrdersDetails
Ord_no | PROD-ID | Qty-ord (primary key is Ord_no, PROD-ID)
O56 | P004 | 9
O56 | P033 | 24
O81 | P004 | 14
O81 | P005 | 6
O88 | P015 | 10
O99 | P015 | 3
现在,如果您想要当前的输出,可以通过连接查询获取它:
SELECT
c.Cust_id,
c.Name,
o.Ord_no,
o.Ord_Date,
od.PROD-ID,
p.Descr,
od.Qty-ord
FROM Customers c
INNER JOIN Orders o
ON c.Cust_id = o.Cust_id
INNER JOIN OrdersDetails od
ON o.Ord_no = od.Ord_no
INNER JOIN Products p
ON od.PROD-ID = p.PROD-ID;