Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

I am trying to make an ER Schema for a person. The person will have Current Address and Permanent Address. So far I have it so that both Current and Permanent Address are Composite Attributes and they have the same Attributes.

enter image description here

If you look at the picture you see that it is pretty much a copy of the same attributes. How can I combine them/make this better?

share|improve this question
add comment

3 Answers

I'm with @sa555. but to exemplify better, you can adda Person_Has_Address entity, that has a relation to a new AddressType table.

It would be like:

enter image description here

AddressType would have two records: "CurrentAddress" and "PermanetAddress". In the case more address type wouldd come up (like mailing address, or work address), your are covered-up

share|improve this answer
add comment

Currently you model both addresses as separate, composite attributes. Instead you could model them as separate entities and connect it to the Person entity using different relations like shown below:

ER diagram

That way, you may have less redundant information. If, for example, for one person the current and permanent address are identical you just have to point towards the same address entity, instead of duplicating all attributes like in your approach.

share|improve this answer
add comment

Have an "address type" attribute. Then you only need one address entity whether it's a permanent or current address

share|improve this answer
    
"Entity" as in the rectangle in the diagram? –  CharlieK Sep 10 '13 at 2:28
    
Can you explain it more? I don't understand. –  CharlieK Sep 10 '13 at 3:11
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.