Quote: Confused because normally we give person_id in Address table as foreign key. But here its not like that.
To add to what Richard (rightly) says...
Normally, you wouldn't have a person ID as a foreign key in the address table - because you normally have multiple people sharing the same address, not the other way round.
Having a Person as a foreign key means that you can have a person with multiple addresses, but you can't have multiple people with the same address. Since you would normally have a family (or a whole company) sharing a physical address rather than a single person being located in multiple places at once the address is a foreign key, and you add separate address columns to the person table for "home", "work", and so on as appropriate, or a separate table for "address type" and a linking table to join persons to addresses and types.