Sorry, hit send by accident...

In my view:
- this gives you the ability to define the Employee 'entity' as needed, 
this could be one table ([employee]), or many tables ([employee] <- 
[address], <-[phones], <-[Signficicant_others], <-[etc etc etc]  {<- [] 
all reference employee)}.
- The same for the project, you can define it simply as [Project], as 
complex as needed.
- With a separate table for [Roles] you can define this as needed as 
well, simple job title, or far more complex.
- The middle lining table [Employee_Role] can also contain further 
information related to specifics of the employee's function to the 
specific project (or other way around, the specifics of the project as 
related to the employee).

For display (starting at employees -- Employee data as One record)
Employee ID (relate to get [Employee_Roles])
Done during display of listbox (selection based), based on 
[Employee_Roles]
Query, or relate selection, from [Employee_Roles] to get [Project]
Query, or relate one, from [Employee_Roles] to get [Project_Roles] for 
the employee for each [Project]

An output listing would likely be best starting from [Employee_Roles]. 
Rather then from either [Project], or [Employee], as it would be 
difficult (in a selection listbox, not so much an array listbox) to 
display the relationship between [Project], and [Employee] by starting 
on either of those tables.


edit: fixed spelling below

On Wed, 8 Nov 2017 15:39:15 -0500, Chip Scheide via 4D_Tech wrote:
> [employee] <-- [Employee_Role] --> [project]
>                   Project_ID
>                  Employee_ID
>                    Role_ID  ------------> [Project_Roles] (or 
> [Employee_Roles])
>                                 
> 
> On Wed, 8 Nov 2017 10:06:22 -1000, John Baughman via 4D_Tech 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]
>> **********************************************************************
> ---------------
> Gas is for washing parts
> Alcohol is for drinkin'
> Nitromethane is for racing 
> **********************************************************************
> 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]
> **********************************************************************
---------------
Gas is for washing parts
Alcohol is for drinkin'
Nitromethane is for racing 
**********************************************************************
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