I have designed a database using MySQL likewise
My question is what else i can do to normalize the DB, for now i am using InnoDB engine for the table to maintain the relation among different tables.
migrated from stackoverflow.com Feb 15 '13 at 11:29
This question came from our site for professional and enthusiast programmers.
it really depends on "how normal is normal", there are 6+ forms.
comment table is normalized (assuming a user can comment more than once on a vid. how about a date field?)
like table is not really normalized, unless a user can like a video more than once. you could kill the likeId. also, date field would be handy.
video_list.meta suggests a denormalized field
follower_list is not quite right, as the same user can follow the same follower more than once. kill the followId field. you can have fkeys on more than one field.
user_profile is reasonably normalized, though some fields will be null, suggesting not full normalization.
user_login is not fully normalized, as they might have a fbId but not a twitterId or emailId.
To be properly normalised, the profile and login tables should be one single table (as long as there is a one-to-one relationship between them). From the available information, there doesn't appear to be any benefit to splitting them.
Followerid seems unnecessary (you can just use a 2 column primary key).
Address probably wants to be on another table (then you can normalise parts of the address such as town name).
Parent_id on the videos table doesn't seem to relate to anything.
Otherwise seems fine for normalisation.