SQL表关系

时间:2017-09-22 17:24:39

标签: sql

我正在尝试为处理工单故障单上的服务活动的SQL数据库创建一些表关系。我对这些表有一对一的关系,并有一个问题。 我有WOT(工单车票)表来创建工单票。 WOT可以在与其关联的不同日期具有多个服务活动。 每个服务活动可以使用多个部分(用于修复)。 这只是基本的想法,但我创建了以下表格和关系:

WOT Table:
  

wot> wotnum - PK

Service Activity Table:
  

service_activity> serviceid - PK

     

service_activity> wotnum - FK(链接到WOT表中的PK)

Part Used Table:
  

partused> partusedid - PK

     

partused> serviceid - FK(链接到服务活动表中的PK)

上面的每个表都有其他列(未显示),但它们对表是唯一的,例如日期字段,部件号等。

service_activity>serviceid (PK)字段是自动增量字段,partused>partusedid (PK)字段也是如此。

我的问题是,在数据输入过程中,如何确保与service_activity>serviceid field (PK)同步的partused> serviceid字段(FK),而无需手动输入partused>serviceid field (FK)

虽然我对表格和关系有一个很好的理解(现在对于正确理解这一点至关重要),但我对于在实际数据输入过程中表格如何相互作用进行思考的过程有点新手。我认为对此的答案可能很简单,但我还没有把握它。如果我目前的解决方案似乎不够,我欢迎提出建议。我需要一些帮助才能朝着正确的方向前进。

1 个答案:

答案 0 :(得分:0)

如果您已正确添加FK,则在数据输入期间手动输入partused.serviceid列数据时,它会自动引用service_activity.serviceid列。

例如:如果您只有一个service_activity与serviceid = 456

  1. 当您尝试在使用partused.serviceid = 500的表格部分中插入数据时,会抛出错误并且不允许插入。

  2. 当您尝试在使用partused.serviceid = 456的表格部分中插入数据时,它将成功,因为另一个表格中的引用行确实存在。