I want to create a social website which people can share their photos with friends and I don’t know if it is correct or there is something wrong with it. I would be very grateful if someone could have a look at it and give me some feedback on it.

Here is the link of the ER diagram, please give some comments.



ERM seems to be almost completed and sound.

May I do some notes to the primary, foreign keys? For example entity friendlist has an artificial key idAddedFriendnum although the attributes (idPerson, FriendID) unequivocally identifies each entry. Therefore (idPerson, FriendID) should be primary key of friendlist. Both attributes must be taken from table person, what means that idPerson, FriendID are foreign keys.

Same for entity LoginTime: (idPerson and Time) also identifies each entry uniquely here. Then why introducing an artificial key for LoginTime? Btw, you are using char string "Time" which is already used for data type.

I think it's a good idea to forgo artificial keys if entities already have enough strong attributes for forming the primary key. Just consider, artificial keys significantly increase redundancy and programming expenses.

-- tesu

to design social networking site, what all tools you will use?