Mysql – Seperate Address Table for Patient and Emergency Contact Person

MySQL

Is it good to separate address table for patient and emergency contact person?

Currently this are my tables

Patients

id

first_name

last_name

status

gender

PatientAddresses

id

patient_id

address_line_1

address_line_2

address_line_3

city

postal_code

state

country

EmergencyContactPersons

id

patient_id

first_name

last_name

EmergencyContactPersonAddresses

id

emergency_contact_person_id

address_line_1

address_line_2

address_line_3

city

postal_code

state

country

OR THIS IS BETTER?

Addresses

id

address_line_1

address_line_2

address_line_3

city

postal_code

state

country

EmergencyContactPersonAddresses

id

emergency_contact_person_id

address_id

PatientAddresses

id

patient_id

address_id

Best Answer

The second approach is much better. One massive advantage is that both patient and emergency contact could have the same address. Typically an emergency contact is a parent or spouse, so you could have a checkbox in your application that says "Emergency contact's address is same as Patient's". This would save on space in the database, add convenience for users of your application without any extra development effort from yourself.