Каким будет лучший дизайн базы данных для сайта социальной сети? Одна таблица с большим количеством столбцов и меньшим количеством строк, или несколько таблиц с меньшим количеством столбцов, но большим количеством строк?
Например: пользователь может опубликовать обновление на своей стене или в группе.
Я могу придумать две конструкции базы данных:
Дизайн 1
UserPosts
- Я бы
- ID пользователя
- после
- Дата и время
UserGroupPost :
- Я бы
- идентификатор_группы
- ID пользователя
- после
- Дата и время
Потенциальная проблема : может потребоваться соединение, которое может (в будущем) быть медленным запросом.
Дизайн 2
Сообщения :
- Я бы
- ID пользователя
- идентификатор_группы
- после
- datetime (где groupid будет нулевым, если пользователь постит на своей стене)
Потенциальная проблема : цикл по большому набору данных может занять (долгое) время.
Как повысить производительность при увеличении данных? Есть ли другой (лучший) способ?