0

我使用的MS Access 2016和我创建的表(实体)的员工,管理者具有以下属性:MS Access表关系

Employees 
    -EmployeeId (Primary key) 
    -Name 
    -LastName 
    -Email 
    -Phone 

    Managers 
    -ManagerId (Primary Key) 
    -EmployeeId (Foreign Key & Unique) 
    -Position 

我想创建2个实体满足之间的关系如下要求:

  1. 经理(EmployeeId)是一个独特的价值。
  2. 在管理者表中的每个记录必须有在雇员表中的记录(因为经理是雇员)

我可以创建表之间的一对一的关系,我认为这是好的因为只有一个ManagerIdEmployeeId(当员工实际上是一个经理),但我的问题是,当我在我的Employees表中添加一条记录访问迫使我有一个记录在管理器表中,即使当我添加一个员工表的非经理。我非常感谢有关如何在两个表格之间创建关系的任何建议。

回答

2

当使用视觉关系窗口定义关系时,Access通常很好地确定哪个是主表,哪个是基于相关字段的索引的“相关”表。但是,对于两个字段上的索引都是唯一的1对1关系,Access会使用您单击的第一个表作为主表,第二个表(将第一个字段拖到第一个表上)作为相关表。因此,它需要在可以添加相关表记录之前将值存储在主表中。我假设你通过点击和拖拽错误的顺序/方向来定义关系。

删除表格之间的现有关系。然后通过首先单击Employees.EmployeeId字段,然后将该字段拖到Managers.EmployeeId来重新定义关系。弹出的关系窗口左侧应显示Table/Query: Employees,右侧显示Related Table/Query: Managers

+0

那么,那项工作。我将在未来考虑这一点。谢谢你的帮助。 – Fxbaez