美好的一天
我在这里遇到一些问题(请记住我是新手)。我原则上正在建立一个非常小的库存系统。我试图规范我的桌子。当我到达3NF时,我会遇到一个小问题。 这是过程
UNF
Sub SetHyperlinkOnShape()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet6")
Dim hyperLinkedShape As Shape
Set hyperLinkedShape = ws.Shapes("Rectangle 1")
ws.Hyperlinks.Add Anchor:=hyperLinkedShape, Address:="", _
SubAddress:="Sheet4!C4:C8", ScreenTip:="yadda yadda"
End Sub
INF
Product (productID, productName, productBrand, productQuantityinstock,
productQuantitySold, productCost, adminstaffID, adminstaffName,
adminstaffUserName adminstaffPassword, productcategoryID,
productcategoryName, { customerID, customerName,
customerAddress, customerContact, serviceID,
serviceType,serviceCost, serviceStatus,
serviceDetails, techstaffID, tsUsername,
techstaffPassword } )
2NF
Product (productID, productName, productBrand, productQuantityinstock,
productQuantitySold, productCost, adminstaffID, adminstaffName,
adminstaffUserName adminstaffPassword, productcategoryID,
productcategoryName)
Product_Customer (productID, customerID, customerName, customerAddress,
customerContact, serviceID, serviceType,
serviceCost,serviceStatus,
serviceDetails, techstaffID, tsUsername,
techstaffPassword)
3NF
Product (productID, productName, productBrand, productQuantityinstock,
productQuantitySold, productCost, adminstaffID, adminstaffName,
adminstaffUserName adminstaffPassword, productcategoryID,
productcategoryName)
Product_Customer (productID*, customerID*)
Customer (customerID, customerName, customerAddress, customerContact,
serviceID, serviceType, serviceCost, serviceStatus,
serviceDetails, techstaffID, tsUsername,
techstaffPassword)
以上就是我所做的但是我被告知在3NF中形成SERVICE表中的customerID和techstaffID必须进入CUSTOMER表。
系统的设计使客户可以拥有一项或多项服务,技术人员将执行一项或多项服务。所以我知道外键总是在关系的许多方面,所以如果
服务客户将是1-M,服务方面具有多种多样性
和
服务的Techstaff将是1-M,服务方面的多重性也是如此
我附上了我的ERD图像。任何帮助将非常感谢这两个外键应该去哪里。
答案 0 :(得分:1)
我被告知在3NF中形成了customerID和techstaffID 在SERVICE表中必须进入CUSTOMER表。
不要遵循这个建议。你的3NF很好。服务调用将涉及客户和TechStaff,因此在Service
表中将其ID作为外键是正确的。如果您遵循建议,则意味着客户与所有服务请求的单个技术人员相关联。
我有另一个建议:为什么不将TechStaff
和AdminStaff
合并到一个Staff
表中,如下所示:
Staff
(
StaffID,
StaffFullName,
StaffUsername,
StaffPassword,
StaffTypeID -- use this column to determine if a staff is tech or admin
)