Хранилище данных движка приложений и низкоуровневый API Java: отношения многие ко многим - PullRequest
0 голосов
/ 21 июля 2011

Я просто хочу знать, как возникли отношения многие ко многим между двумя сущностями, использующими API низкого уровня в хранилище данных, я искал, но не смог найти документацию, объясняющую, как сделать такие отношения.Я надеюсь, что кто-то может помочь.

но если у меня есть сущность A и сущность B в отношениях многих ко многим, как я могу хранить их в хранилище данных.Я имею в виду, это хорошее решение для хранения многих-многих объектов в хранилище данных или что такое хорошее решение?этот код в порядке или не так?

Entity entityA = new Entity("TypeA");
entityA.setProperty("name", "nameUserA");

Entity entityB = new Entity("TypeA");
entityA.setProperty("name", "nameUserB");

ds.put(entityA);
ds.put(entityB);

Entity entityChild = new Entity("entityChild",entityAKey);
entityChild.setProperty("name","child");

 ds.put(entityChild);

Entity entityChild = new Entity("entityChild",entityBKey);
entityChild.setProperty("name","child");

 ds.put(entityChild);

1 Ответ

0 голосов
/ 21 июля 2011

AppEngine не предоставляет никакой функциональности для отношений «многие ко многим».

Вы можете эмулировать его, создав собственную сущность с двумя полями:

class AtoBRelations {
  Key entityA 
  Key entityB
}

У меня обычная схема иметь дополнительную таблицу для отношения многие ко многим, даже для других баз данных

Кстати, для большинства случаев это будет неоптимальное решение. Оптимальное решение зависит от того, как должно использоваться это отношение «многие ко многим», и существует несколько различных решений

например, есть второе решение: вы можете сохранить список связанных сущностей, например:

class EntityA {
   List<Key> entitiesB
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...