SORU
12 HAZİRAN 2011, Pazar


Ne kadar Dinlendirici bir API çok-çok ilişkileri işlemek için?

2 varlıklar, var düşününOyuncuveTakımoyuncu birden fazla takım olabilir. Veri modeli, her varlık için bir tablo var, bir tablo ilişkileri korumak için Facebook'a katıl. Hazırda bu işi de gayet iyi ama ne kadar Dinlendirici bir API bu ilişkiyi ifşa edebilir miyim?

Birkaç bir şeyler düşünebilirim. İlk olabilirim her varlık içeren bir listenin başka bir Oyuncu itiraz edecek bir liste Ekipler ait olduğu için, ve her Takım itiraz edecek bir liste Oyunculara ait. Bu yüzden eklemek için Oyuncuya bir Takım, sadece POST oyuncunun gösterimi için bir son nokta, bir şey gibi POST /player veya SONRASI /team ile uygun bir nesne olarak yük talebi. Bu en "" ama biraz garip geliyor bana. Dinlendirici görünüyor

Aklıma başka bir şekilde bunu yapmak için kendi başına bir kaynak olarak ilişkiyi ifşa etmek olacaktır. Yani belirli bir takımın bütün oyuncuları bir listesini görmek için, böyle /playerteam/team/{id} ya da bir şey ALMAK ve PlayerTeam varlıkların listesini görürsünüz. Bir takım için bir oyuncu eklemek için POST 3* *yükü olarak uygun şekilde inşa PlayerTeam bir varlık.

Bunun için en iyi yöntem nedir?

CEVAP
13 HAZİRAN 2011, PAZARTESİ


/memberships/ kaynakların ayrı bir set yapmak.

  1. DİNLENME eğer başka bir şey evolvable sistemleri yapmaktır. Şu anda, sadece belirli bir oyuncu gelecekte bir noktada belirli bir takımda, ama, sen bakım olabilirbu takımda ediyorlar, onların koçu/o takımda olsa idi kim bu takım, onları vs vs kim yönlendirdi. daha fazla veri ile olan ilişkisini açıklamak istiyorum:
  2. DİNLENME önbellek kararlılık ve iptal için bazı düşünülmesini gerektiren verimlilik için önbellekleme bağlıdır. /teams/3/players/ için yeni bir işletme SONRASI eğer o liste geçersiz olacak, ama alternatif URL /players/5/teams/ önbelleğe kalmasını istemiyorum. Evet, farklı önbelleğe olacak kopya her liste farklı yaş ve orada değil çok yapabiliriz bu konuda, ama biz en azından en aza indirmek karışıklık için Kullanıcı POST işleminin güncelleştirme tarafından sayısının sınırlandırılması varlıklar ihtiyacımız geçersiz müşterisi yerel önbellekbir ve tek/memberships/98745 (" Daha ayrıntılı bir tartışma için Life beyond Distributed Transactions). "diğer endeksleri görmek Helland tartışma
  3. Sadece /players/5/teams /teams/3/players (ama ikisi birden değil) seçerek yukarıda 2 puan uygulamak olabilir. Eski varsayalım. Bir noktada, ancak, bir liste için /players/5/teams/ rezerve etmek isteyeceksinizmevcutüyelikler ve henüz başvurmak için mümkün olabilirgeçmişüyelikleri bir yerde. /players/5/memberships/ /memberships/{id}/ kaynaklara köprüler bir listesini yapın ve sonra da istediğiniz zaman /players/5/past_memberships/, bireysel üyelik kaynaklar için herkesin imleri kırmak zorunda kalmadan ekleyebilirsiniz. Bu genel bir kavramdır; özel bir durum için daha uygun olan diğer benzer vadeli tahmin edebilirsiniz eminim.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Autocar

    Autocar

    11 Mart 2006
  • FullMag

    FullMag

    15 ŞUBAT 2007
  • The Verge

    The Verge

    8 AĞUSTOS 2006