There are several ways you can approach this so I'm just going to give you a straight forward way of doing it. Since different users will have different access levels, you will have to have a field to grant a user their privilages. From what I gather, you will want 3 different access levels. Super user (your dad), company owner and company area manager. The reason I only have company owner instead of company owner and subcontracters is because a company owner can view all of his company's logs which include all the subcontracts. So if x subcontracts to y, x will be able to view that log even tho the log will belong to company y. I will explain more when I set up the tables.
Here is a rough outline of the table structure.
USERTABLE:
userName
password
accessLevel
company
area
REPORTSTABLE:
uniqueID
reportInformation
companyOwner
companyContracted
area
Lets break this down.
If the user if your dad, he will have super access allowing him to view every single report and modify them as he pleases. So you will want to create a page that when a super user logs into, they will be sent to that page which will allow them to fully control the reports.
If the user is an owner of a company, lets say X, they can log in and be directed to a page, lets say view.php, that allows them to view all the reports that belongs to company X.
In that same view.php page, you can distinguish what their access level is and based on that, they would be able to view particular reports. For instance,
if access = owner then create a select statement that selects all reports where companyOwner = companyX and companyContracted = companyX
elseif access = manager then create a select statement that selects reports where company = companyX and area = areaX
So basically company X can view all the reports that belong to them and also are subcontracted to them. where as if company Y logged in, they would only be able to view ones that belong to company Y or are sub contracted to company Y too. I'm not exactly sure if this was what you were trying to get across but it seems like it.
Anyways, I hope this steers you in the right direction.