Многие "BAW" (крупные задние сайты) используют методы хранения и извлечения данных, которые полагаются на огромные таблицы с индексами и используют запросы, которые не будут/не могут использовать JOINs в своих запросах (BigTable, HQL, и т.д.) для работы с масштабируемыми и масштабирующими базами данных. Как это работает, когда у вас много и очень много данных, которые очень связаны?
Я могу только предположить, что большая часть этого присоединения должна быть сделана на стороне приложения, но не становится ли это дорогостоящим? Что делать, если вам нужно сделать несколько запросов к нескольким различным таблицам, чтобы получить информацию для компиляции? Не попадает в базу данных, которая много раз начинает дорожать, чем просто использовать соединения в первую очередь? Я думаю, это зависит от того, сколько у вас данных?
И для общедоступных ORM, как они имеют дело с неспособностью использовать соединения? Есть ли поддержка для этого в ORM, которые сегодня используются в большом использовании? Или большинство проектов, которые должны подходить к этому уровню данных, в любом случае сворачивают свои собственные?
Таким образом, это не применимо к какому-либо текущему проекту, который я делаю, но это то, что было у меня в голове уже несколько месяцев, что я могу только размышлять о том, что такое "лучшие практики". Мне никогда не приходилось обращаться к этому в любом из моих проектов, потому что они никогда не достигали шкалы, где это необходимо. Надеюсь, этот вопрос поможет и другим людям.
Как сказал кто-то ниже, ORM "не работают" без объединений. Существуют ли другие уровни доступа к данным, которые уже доступны разработчикам, работающим с данными на этом уровне?
EDIT: Для уточнения, Vinko Vrsalovic сказал:
"Я считаю, что хихиканье хочет поговорить об NO-SQL, где транзакционные данные денормализуется и используется в Hadoop или БигТейбл или Кассандра".
Это действительно то, о чем я говорю.
Бонусные баллы для тех, кто улавливает ссылку xkcd.