2009-02-27 12 views
34

http://tagging.pui.ch/post/37027745720/tags-database-schemasHangi etiket şemaları en verimli/etkilidir?

Stackoverflow'un etiket kullanımı şimdiye kadar gördüğüm en iyiler arasında.

Bir fikir olup olmadığını bir şema deseni olup olmadığını bilen var mı?

Aksi takdirde, yalnızca başkalarının başarıyla uyguladığı etiket şemaları hakkında öneriler arıyorum.

+2

iyi soru çok kafa karıştırıcı değildi olanlar tagCollectionId en

Umut herhangi biriyle veri satırlarını bulun! –

cevap

18

ve yoğunluk oranı (tipik insan tarafından üretilen veriler), veriler tarafından kullanılan her olası etiket koleksiyonu için benzersiz bir id veya karma oluşturabilirsiniz.

örneğin

Bu insan pek çok biçimi için şaşırtıcı derecede iyi çalışabilir bu etiketlerin her veri örneği ile 'etiketi toplama' kimlik ilişkilendirme üretilen veriler

Stackoverflow ~ 500.000 soru ve ~ 20.000 etiketler (çok fazla dupe-ish etiketi!) Var. Çoğu sorunun beşten az etiketi vardır. En kötü durum senaryosunda, 500.000 'etiket koleksiyonu' kimliğine sahip olacaksınız, ancak daha gerçekçi bir şekilde birkaç bin

olacaktır. Ayrıca, "etiket koleksiyonu" koleksiyonunda belirli bir kombinasyon olarak örnek izleme veya çöp koleksiyonuna sahip olmanız gerekir. etiketler kullanım dışı kalıyor örn .:

eg

  • Etiket: id, tagName
  • TagCollection: id, instanceCount
  • TagCollectionTag: tagCollectionIId, TagId
  • Veri: id, başlık, içerik,

takma etiketleri hızlı olursa olduğunu tagCollectionId Bir hash kullanılır (koleksiyonun tüm etiketlerinde karma). Aksi halde TagCollection ve TagCollectionTag koleksiyonlarını aramak zorundasınız, ancak bu zaten çok büyük olmamalıdır.

Arama hızlıdır; etiketleri belirli kümesini içeren örnekleri için TagCollectionTag arayın ve ardından Gerçekten :-)

+0

+1 ers, bunun sizin için nasıl çalıştığına dair herhangi bir geri bildiriminiz var mı? – TFD

+0

+1 Bu cevabı 1 yıl önce okudum. Bir yıl sonra, bu cevabı tekrar aramak için tekrar aradım :). Şimdiden teşekkürler. '(Koleksiyonun tüm etiketlerinde hash)' bölümüne biraz ışık tutabiliyor musunuz, bu mantığa o koleksiyona karşılık gelen tüm etiketleri birleştiren bir karma oluşturmak mı istiyorsunuz, yoksa veritabanının kendisinden yardım alabilirim. Ne tür bir karma şema burada en iyi olurdu? – Sage

İlgili konular