I'm building the core contact management portion of my database and I'm finding that almost always, addresses will be related to companies, but occasionally, an address will be associated only with the contact - not the company. Since the data of the addresses is the same (street address, city, state, zip), I created one address table, one company table and one contacts table, then I created many-to-many tables linking the contacts to their addresses and the companies to their addresses.
This just makes working with the data on forms difficult.
Would I be better off just adding two linked fields in the address table so that each record could be linked to a contact or a company? Or should I have two address tables identical with one linked to companies and the other linked to contacts? It's really two individual one to many relationships. One-to-many contacts to address and one-to-many companies to addresses.