数据库设计是一门艺术,与科学相结合。数据库架构师获得丰厚收益是有原因的。就像在观看Youtube视频后尝试做牙科一样。
但是,我可以给你一些有用的指示。首先,您通常只想写一次数据。您接触数据的次数越少,您就越好。所以,在这种情况下,你需要一个除了Hazzards及其描述之外的表格:
tblHazards:
HazardNumber HazardDescription H101 Fire hazard H102 Compression hazard etc....
由于危险数字是唯一的,因此HazardNumber字段将作为其自己的“密钥”。如果您有一个非唯一数据表,那么您应该为其添加一个ID字段,以便于引用。
现在你有了产品表。它看起来像这样:
tblProducts:
ProductID ProductName Manufacturer Cost XX302 Some Product ABC Company 750.00 YY110 Another Product XYZ Company 500.00 etc...
这假设ProductID是唯一的。也就是说,您将永远不会有2个具有相同ID或条形码的产品或您用于对产品进行编目的任何产品。如果您有2个具有相同ID的产品,请在此处添加ID字段并将其设置为AutoNumber。
最后,您有“交叉引用”表,其中包含所有产品/危害匹配:
tblProductHazardCrosswalk:
ID ProductID HazardID 1 XX302 H101 2 YY110 H101 3 YY110 H102 etc...
您在最后一个表上放了一个ID,因为如果您必须删除或编辑记录,则说“Where ID = 20”比“Where ProductID = XX110和HazardID = H160”更容易。一旦排好,您就可以使用人行横道表在表格和报告中加入产品危害。实际上,您可以将子表单拖放到按产品ID过滤的“产品”表单中,并且可以非常轻松地添加,编辑和删除与您的产品相关的危险。
总记得;在田野方面,少即是多。不要在表中放置75个字段,也不要创建一个必须继续添加字段的表。如果您以这种方式创建数据库,那么您做错了。