I can only see the need for 2 tables. A documents table and a document_types table.
The documents table references the documents_type table by type_id I.e.
documents
----------
doc_id
type_id
date_added
doc_name
document_types
----------
type_id
type_title
document_types would contain people, companies, and projects, and any other types. Each has an id and is used in a join from documents when you want to say fetch all company documents.
You do not want to be creating separate tables for each type as there is no flexibility in the design and as you have already found out it is hard to create the business logic.