What would be better DB design for a social network website. A single table with more columns and less rows or multiple table with fewer columns but more rows.
For example: User can post an update on their wall or in a group.
Two DB designs that I could think of are:
1) UserPosts: id, userId, post, datetime UserGroupPost: id, groupId, userId, post, datetime
Potentail problem : Might require joins, which can (in future) be a slow query.
2) Posts: id, userId, groupId, post, datetime (where groupid would be null if user posts on their wall)
Potential Problem : Looping over large dataset could take a (long)time.
Where can I get better performance when data increases? Is there any other(better) way?