Parse

2015-05-30 15 views
8

'u kullanarak yapılan aramaların sayısını sınırlandırın İlk uygulamamı bir arka uç ile yapıyorum.Parse

Genel bilgi

uygulaması kullanıcıları, vb resimler,

Dbs, bir yere yüklemek buna etiketleri eklemesine olanak verir Bir çevrimdışı Db olarak Realm kullanıyorum

& Parse.com çevrimiçi olarak Db.

Ben veritabanı modelini oluşturmak ve tüm çok-çok ilişki bağlamaya çalışıyorum

örneği. Bir örnek: Bir yerde bir dizi etiket (kısa dize) vardır, bir etiketin bir dizi yeri olabilir. Ben alemine ile bunu inşa Buna

: 1. yer nesnesi her verilen etiketi için 2. Make a etiket nesnesi yapmak ve yeri nesne ilişkisi 3. eklemek yer nesneyi alın ve etiket nesnesi eklemek ilişki

Artık yer etiketine sahip olduğumda tüm etiketleri tek bir yerden alabilirim. Bir etiket nesnesine ait tüm yerleri bulabilirim.

Şimdi çevrimiçi sürümü Parse ile yapıyorum ve bu yaklaşımın birçok çağrıya yol açacağını fark ettim.

Olası çözüm

  • (adım 3) yerine yer ilişkisi etiketi nesne ilişkisi eklemeyin, yer nesneyle ilişkisi için etiket sınıfı sorgu. (çok yavaş olabilir mi?)
  • 'Çevrimdışı' modelini oluşturmanın ve bir bütün olarak itmenin bir yolu var mı?

Bu tür bir mantığa yeniyim, umarım soru açıktır. Anladığım kadarıyla geniş, ama sanırım toplam vakayı açıklamak en iyisidir.

cevap

4

Parse içinde çoktan çoğa ilişkilerin uygulanmasının birkaç yolu vardır. İlgili nesnelerin sayısına bağlı olarak Dizileri veya İlişkileri kullanabilirsiniz. Parse's documentation'da daha fazlasını okuyabilirsiniz.

Ayrıştırma İlişkilerinde, arama yapmadan önce bir ilişkide birden fazla nesne ekleyebilirsiniz. Dokümanlarda Kitap ve Yazar örneğini alıp sizin durumunuza göre ayarlayayım. işlemdir: bir etiket nesne mevcut ise

  1. Yeri nesne
  2. kontrol edin. Değilse bir tane oluşturun.için AŞAĞIDA YORUM

    İsterseniz AS

    // let’s say we have a few objects representing Place tags 
    ParseObject tagOne= 
    ParseObject tagTwo = 
    ParseObject tagThree = 
    
    // now we create a place object or specify the one you want to update 
    ParseObject place= new ParseObject("Place"); 
    
    // now let’s associate the tags with the place 
    // remember to create a "tags" relation on Place 
    ParseRelation<ParseObject> relation = place.getRelation("tags"); 
    relation.add(tagOne); 
    relation.add(tagTwo); 
    relation.add(tagThree); 
    
    // now save the book object 
    book.saveInBackground(); 
    

    DÜZENLEME:

  3. Ön etiketi Ayrıştırma İlişkiler İşte

yılında yer nesneyle nesneleri kod örneği olduğunu verilen bir etiketle tüm yerleri bulun, şunları yapabilirsiniz:

ParseObject tag = .... 
ParseQuery<ParseObject> query = ParseQuery.getQuery("Place"); 
query.whereEqualTo("tags",tag); 
+0

Ancak etiket nesnesini alıp ilişkilendirilebilecek yerleri bulamayacağım. Ayrıca, checken etiketin her etiket için bir çağrıdır mı? – TomCB

+0

Belirli bir etiketle tüm yerleri bulmak için yine de sorgu yapabilirsiniz. Dokümantasyonda bir örnek var (örneğin yukarıdaki benim düzenlememe bakın). Etiketleri kontrol etmek için çeşitli yollar da vardır, ama Realm veritabanınıza bir alan ekleyebileceğinizi düşünüyorum, eğer etiket henüz Parse'ye eklendiyse bunu gösterir. ObjectID ile bir String alanı olabilir. – Ralphilius

+0

Bu benim sorumun bir parçasıydı: Verilen etiketi içeren yerleri bulmak için bir sorgulama yapmak, daha sonra etiketi nesnesinden "yer" ilişkisini daha iyi hale getirecek mi? – TomCB

İlgili konular