My intention here is to have COLUMNS("assignedTo" , "loggedBy" , "completedBy" )
to have a reference to multiple records of "Employee"
, "ID"
I would have to assume it would be a many to many relationship however I'm oblivious to how it should be implemented.
Here's an a screenshot of my ERD demonstrating what my database currently looks like:
It looks like you'll need to use join/junction tables as suggested by @Bas.
I believe the actual tables creating the relationship you want will need to look something like this:
(My diagram leaves out some of the other tables which I don't think are important to illustrate the concept of many-to-many relationships that use junction tables.)
You'll note that I've removed the loggedBy, assignedTo and completedBy columns from your Task table. When doing a many to many relationship you don't need them. The info about those connections between tables is stored in the junction tables.
Why do we have to do this?
Let's just use the AssignedTo relationship as an example...
Since we don't know how many Employees might be assigned to a Task we can't make columns for the Employees' ids in the Tasks table. Likewise, since we don't know how many Tasks an Employee might be assigned to we can't make column for the Tasks' ids in the Employees table. If we tried to, we might not have enough columns or we might have too many columns. Neither of these are good problems to have.
Instead, we put a new entry in the related junction table every time we want to make a connection between tables that have many-to-many relationships. We can add as many connections or as few connections as we want without any problems.
Hopefully that makes a bit more sense. Things certainly can look more confusing when you're trying to model many-to-many relationships in a relational database.