I would go with option 1. It is perfectly fine to have two foreign key columns referencing the same primary key column in a different table since each foreign key value will reference a different record in the related table.
I’m sure option 2 would work, but you would essentially have a 1-to-1 relationship between TIMESHEET_TABLE
and TIMESHEET_FILLED_BY
, making two tables unnecessary and more difficult to maintain.
In fact, if both ENTERED_BY
and TIMESHEET_FOR
are required in pairs, using option 1 makes far more sense because this is automatically enforced by the database and foreign keys.