Thanks for the replies. 

To reiterate, every project will have, and only have, a principal, manager, snd 
supervisor who are employees. 

Judging from your suggestions and my trial and error testing, It looks to me 
that respecting normal form, no matter how you create the structure and 
relationships you will not be able to automatically access Employee data 
directly in an output list, input form, or report in 4D. Code will be required 
to query the Employee table in order to properly display or report on the 
Projects table with data from the Employee table. 

If, as is the case in my situation, one has a unique field in the Employee 
table that is user recognizable such as an Employee Number it could be used in 
the Project table. No relationships are required. Those fields in the project 
table can be listed or reported directly. Any additional Employee data can 
easily be obtained with code, just as one would with relationships, without the 
use of any relationships or linking tables.

That being said, while not providing access to the employee data directly, a 
many to many linking table would be useful for collecting employees related to 
projects and vice versa.



> On Nov 8, 2017, at 10:06 AM, John Baughman via 4D_Tech <[email protected]> 
> wrote:
> 
> Given a Project table and an Employee table where Employees can be Project 
> Principles, Project Managers, and Project Supervisors, what would be the 
> proper way to create a normalized table structure in 4D. In the end an 
> assigned employee’s information, like name for example, would automatically 
> be displayed in the project’s output form for each of these assignments.
> 
> I am pretty sure using the proper Select/Join commands in SQL this could 
> easily be done, but I am falling short with 4D as none of these structures 
> work...
> 
> [Employees]ID  <——— [Projects]PrincipleEmployeeID
>                         <——— [Projects]ProjectMangeEmplyeerID 
>                         <——— [Projects]SupervisorEmployeeID
> 
> OR using linked tables….
>                       (There is only one record in each linking table for 
> each employee assigned a role)
> [Employees]ID  
> <———[Principles]EmployeeID<———-----------[Projects]PrincipleEmployeeID
>                        <———[ProjectManagers]EmployeeID <——— 
> [Projects]ProjectMangeEmplyeerID
>                        <———[Supervisors]EmployeeID <——— 
> -------[Projects]SupervisorEmployeeID
> 
> The only way I can see to make it work is to denormalize it and put the 
> pertinent data from the Employee table into the linking tables in which case 
> the relationship between the employee table and the linking tables become 
> irrelevant. 
> 
> I have no problem denormalizing, but thought this might be a good exercise to 
> retain a few more cells in my aging brain. ;-)
> 
> John
> 
> 
> John Baughman
> Kailua, Hawaii
> (808) 262-0328
> [email protected]
> 
> 
> 
> 
> 
> **********************************************************************
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:[email protected]
> **********************************************************************

John Baughman
Kailua, Hawaii
(808) 262-0328
[email protected]





**********************************************************************
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[email protected]
**********************************************************************

Reply via email to