在将 table 标准化为 3NF 方面需要帮助吗?
Need help in normalizing a table upto 3NF?
我想规范化 table
到目前为止我已经这样做了:
我的 3Nf 正确吗?
Order(orderNo,orderDate,customerId)
Customer(customerId,customerName,customerCurrentAddress,customerPermanentAddress)
Product(productId,productName,Qty,categoryId)
Category(categoryId,categoryName)
Sub-Category(subCatId,subCatName,categoryId)
鉴于 table 此处:
https://drive.google.com/file/d/1F7cQjjxz9rnY6RHaGtZXuwVGFEHBVgNo/view
您必须在订单和产品之间建立连接 table,以便跟踪包含多个产品的订单。
Order(orderNo,orderDate,customerId)
Order_Details(orderNo,productId,Qty)
Customer(customerId,customerName,customerCurrentAddress,customerPermanentAddress)
Product(productId,productName,Qty,categoryId)
Category(categoryId,categoryName)
Sub-Category(subCatId,subCatName,categoryId)
根据 Wiki 的定义:如果 table 在 1NF 中并且 没有非素数属性依赖于任何候选的任何适当子集,则它在 2NF 中table 的关键。您的大多数 tables 只有 2 列,因此他们对此感到满意。对于Customer(customerId,customerName,customerCurrentAddress,customerPermanentAddress)
,候选键是customerId
,其他列完全依赖于整个候选键,就OK了。
对于 3NF,Wiki 说:table 中的所有属性仅由 table 的候选键决定,而不是由任何非主要属性。如您所见,您的 table 都很满意。
我想规范化 table 到目前为止我已经这样做了:
我的 3Nf 正确吗?
Order(orderNo,orderDate,customerId)
Customer(customerId,customerName,customerCurrentAddress,customerPermanentAddress)
Product(productId,productName,Qty,categoryId)
Category(categoryId,categoryName)
Sub-Category(subCatId,subCatName,categoryId)
鉴于 table 此处: https://drive.google.com/file/d/1F7cQjjxz9rnY6RHaGtZXuwVGFEHBVgNo/view
您必须在订单和产品之间建立连接 table,以便跟踪包含多个产品的订单。
Order(orderNo,orderDate,customerId)
Order_Details(orderNo,productId,Qty)
Customer(customerId,customerName,customerCurrentAddress,customerPermanentAddress)
Product(productId,productName,Qty,categoryId)
Category(categoryId,categoryName)
Sub-Category(subCatId,subCatName,categoryId)
根据 Wiki 的定义:如果 table 在 1NF 中并且 没有非素数属性依赖于任何候选的任何适当子集,则它在 2NF 中table 的关键。您的大多数 tables 只有 2 列,因此他们对此感到满意。对于Customer(customerId,customerName,customerCurrentAddress,customerPermanentAddress)
,候选键是customerId
,其他列完全依赖于整个候选键,就OK了。
对于 3NF,Wiki 说:table 中的所有属性仅由 table 的候选键决定,而不是由任何非主要属性。如您所见,您的 table 都很满意。