По моему мнению, вы должны использовать независимые объекты (строки), а не отношения, поэтому вам больше не нужно использовать сложные запросы.Кроме того, вам будет намного проще кэшировать ваши запросы (как на стороне сервера, так и на стороне db).
Чтобы предотвратить несогласованность, вы должны использовать:
- транзакций, поэтому все «связанные» объекты данных обновляются.
- sharding, поэтому вам не нужно будет масштабировать вашу БД по вертикали.Горизонтально намного проще (в большинстве случаев).
- репликация, поэтому, когда сервер выходит из строя, ваше приложение не становится несовместимым.
Так что, в принципе, это, вероятно, сложнеекодировать, но это даст вам лучший дБ-дизайн с невероятной производительностью и очень масштабируемым.
Кстати. если вы не захотите использовать отношения, я бырекомендую использовать no-SQL-db.Базы данных SQL довольно трудно масштабируются (по сравнению с базами данных без SQL) и вызывают значительные накладные расходы, когда вы не используете отношения (также по сравнению с базами данных без SQL).