Извините, если этот вопрос очень простой, но я начал видеть отсутствие хранилищ sql для приложения Android, и я нашел конечные точки и сервлеты для приложений приложений, которые, насколько я понял, выставляют api для выполнения операций CRUD ,Java POJO классы и нет sql Datastores
То, что трудно понять для меня, это формат сохраненных объектов и его эффективность. Я читал, что, используя библиотеки, такие как objectify/gson, объекты хранятся в json.
Теперь предположим, что у меня есть класс Person, у которого есть атрибут Friends, который является списком Person. Если у двух разных людей есть один и тот же друг, он будет храниться в двух разных объектах json, дублируя информацию. Должен ли я создать другой класс для хранилища, который хранит идентификатор друзей, а затем при загрузке человека найдет своих друзей с хэш-карты Person? Но это означало бы обращение к Людям с просьбой создать эту карту, даже если я хочу найти Человека без друзей.
Другим способом было бы сделать запрос на стороне сервера, вернуть объекты друзей запрашиваемого лица и поместить их в хэш-карту для будущих «запросов» других лиц. Таким образом, я буду передавать меньше данных каждый раз, но я буду потреблять больше времени в веб-сервисе, который может привести к исчерпанию квоты ограничения ежедневных запросов.
Снова извините, новичок. Я был бы признателен за любые указания, шаблоны для решения этой проблемы, вкратце, как эффективно - в смысле объектов пространства-хранилища и эффективно извлекать их - в смысле количества запросов и передачи данных из веб-службы - в база данных nosql.
Большое спасибо за ваш ввод, но если вы не можете хранить дублируемую информацию, как я должен иметь дело с несоответствиями после обновлений? Скажем, я обновляю Person B, я должен обновить каждого человека, у которого есть B как друг?Это не очень эффективно – MithPaul
Я думаю, что вы определили классическую сложность моделирования данных NoSQL. Вы могли бы имитировать концепцию внешних реляционных баз данных, сохраняя ссылку друзей 0 > s друзей человека в лицевом объекте, см. «Описать документацию по объектам». Но в этом случае вам нужно будет принести всех друзей человека, когда вы захотите получить человека со всеми друзьями, и это может иметь важное влияние на производительность. Все зависит от ваших конкретных потребностей, и вам, возможно, придется сделать некоторые выборы. В Интернете есть важная литература о философии NoSQL, в частности о компромиссах, подобных этой. –
Обратите внимание, что вы также можете использовать Cloud Endpoints с облачным SQL, «полностью управляемой службой базы данных MySQL», предлагаемой GCP. –