I have a database with tables: clients (client_id) and companies (company_id).
Both clients and companies can have addresses (address_id), stored in the addresses table.
Is it better practice to:
Have 2 extra tables linking to companies and addresses:
clients(client_id) client_addresses(client_id, address_id) companies(company_id) company_addresses(company_id, address_id) addresses (address_id)
Have a single table entities which has a primary key entity_id used to link all 3 tables:
entities(entity_id) clients(client_id, entity_id) companies(company_id, entity_id) addresses (address_id, entity_id)