• An interesting design challenge. I don't have a good proposal off the top of my head, but will think about this. One thing your proposed solution would run into, however, is that in the employee table a manager would have to have the correct department for which he as been identified as the manager in the dept table.

    Actually, now that I've had a minute to think about this, what about the following.

    tblEmployee

    EmployeeID PK

    DeptID FK references tblDept

    tblDept

    DeptID PK

    tblDeptManager

    DeptID PK, FK reference tblDept

    ManagerID,

    FK ManagerID, DeptID reference tblEmployee EmployeeID, DeptID

    It's almost as if you need a facilitating table used in a M=M construction. In this case you are facilitating a 1=M where part of the relationship in the parent comes from the child.

    I still will think about this a little more to see if there's a way to do this w/o using an additional table. If you assume that the dept is the parent, as there's many employees in a dept but not the other way around, maybe a two field foreign relation key is the solution, although I can't see that one working at the moment.