Physical Address Schema
Short answer:

Either option 1 or option 2:


In-line (one address per source record)
Child table with an FK linked to source record (allows >1 address per source)


Longer...

A separate address table will normally have an FK to some parent record.
Each address will maybe have a type (billing, delivery, etc)

Addresses are not shared or reusable or finite: that is, each address for a source entry has little in common with other entries.


different source records wouldn't have shared addresses (eg many-many in the middle between source and address)
separate address table with FK(s) can't have multiple parents either
having the FKs on source records to some address table would be unusual.


Finally, consider how you use addresses. You add or update them. You don't look for an existing address and link to that. Each address is per source only.