6

Chciałbym wiedzieć - przykład jest bardzo cenny -Jak modelować relacje encji w GAEJ?

Jak modelować relacje w Google App Engine dla Java?

onu Wiele
-Wiele do wielu

Szukałem po całej sieci i znalazłem nic o Javie wszystkie podręczniki i samouczki są o Pythonie.

Zrozumiałem z tego article, że w Pythonie relacje są modelowane przy użyciu ReferenceProperty. Jednak nie znalazłem nic o tej klasie w referencji Javadoc.

Ponadto w tym article one omówione następujące:

istnieje obecnie brak narzędzi dla użytkowników Java, głównie ze względu na względną nowość na platformie Java dla App Engine.

jednak, że został napisany w 2009 roku

Na koniec, skończyło się na modelowaniu relacji stosując ścieżkę przodek każdego podmiotu. Odkryłem, że to podejście ma problemy i ogranicza skalowalność aplikacji.

Czy możesz poprowadzić mnie do równoważnej klasy Java do klasy Python ReferenceProperty? Czy możesz mi podać przykład, jak modelować relacje w AppEngine za pomocą interfejsu API niskiego poziomu java datastore.

Z góry dziękuję za pomoc.

Odpowiedz

4

tworzenia relacji pomiędzy podmiotami w GAE/J zależy db API, którego używasz:

  1. JDO: entity relationships.

  2. JPA: see docs.

  3. Objectify: single-value relationships.

  4. niskopoziomowe API: dodawanie klucza jednego podmiotu jako własność innej jednostce: patrz rodzaje nieruchomości .

+0

Thx za odpowiedź. Aby być pewnym, Czy masz na myśli: entity.setProperty ("property_name", Key); –

+0

Kolejne pytanie, czy dobrze jest używać interfejsu API niskiego poziomu? Czy w najbliższej przyszłości będę miał problemy z konserwacją i skalowalnością projektu? Wcześniej z góry za wskazówki. –

+0

1. Tak, ustaw właściwość na klucz jest w porządku. 2. Wszystkie interfejsy API wysokiego poziomu (JDO, JPA, Objectify) wykorzystują api niskiego poziomu pod maską. Nie będzie problemów z skalowalnością. Łatwość utrzymania to kolejna rzecz - napiszesz dużo kodu na płycie głównej. Preferuję Objectify. –

1

Just a wskazówka. Podczas definiowania modelu danych należy myśleć w kategoriach zapytań użytkowników końcowych i odpowiednio definiować model danych.

Weźmy na przykład przykład wypożyczalni książek.W tradycyjnym zastosowaniu, to masz trzy główne podmioty:

-> Zarezerwuj

-> Klient

-> Dzierżawa (rozwiązać wiele-do-wielu)

Aby wyświetlić raport, z którego klient wynajmie daną książkę, należy wydać zapytanie łączące się z tabelą Czynsz, Tabela książek i tabela klientów.

Jednak w GAE to nie zadziała, ponieważ operacja łączenia nie jest obsługiwana.

Rozwiązaniem, które znalazłem (być może innym rozwiązaniem) jest modelowanie za pomocą tych samych trzech tabel, ale osadzanie definicji książki i klienta w tabeli Czynsz.

W ten sposób wyświetlana jest lista wypożyczanych książek, która jest wyjątkowo szybka i niedroga. Jedyną wadą jest to, że jeśli zmieni się na przykład tytuł książki, muszę przejść przez wszystkie osadzone obiekty. Jednak jak często to się dzieje w porównaniu z zapytaniami tylko do odczytu.

Jako podsumowanie myślcie kategoriami zapytań dla użytkowników końcowych

+0

Thx, dostałem to. Znalazłem w internecie inne artykuły omawiające tę ideę, co dowodzi, że jest to najlepsza praktyka w GAE. –

Powiązane problemy