I have this person table as super parent,
id
firstname
lastname
email
telephone
...
...
and user table as a child
id
person_id (FK)
password
username
screenname
...
...
They must be 1:1 relationship, because an user cannot be repeated twice. and so the email in the person row must not be repeated twice.
Then I have this message table which stores messages from anyone,
id
firstname
lastname
email
telephone
subject
content
...
...
but you can see that firstname,lastname, email,telephone are duplicated in message table.
so I am thinking to refer it to person table like this below,
id
person_id
subject
content
...
but then it does not seem right, as a person with the same email, name, etc can send message to me as many times as they want. so the details he/she provides can be repeated.
so should I make message as a child of person the parent or they should be separate entities?
or any better suggestions to solve this problem.