Alan Koleksiyonu ve Varlık Referansı


14

Tarla toplama nasıl bir avantajdır? Aynı şeyi, Varlık Referansı ile üst öğeye işaret eden yeni bir içerik türüyle de yapabilirsiniz.

Belki birisi her birinin daha iyi olacağı bazı durumları yıkabilir.

Görev -> Dosyalar için, alan koleksiyonu daha iyi mi yoksa Varlık Referansı ile yeni bir içerik türü mi?

Diyelim ki her dosya için o dosya hakkında başka verilere ihtiyacınız var, Varlık Referansı ile yeni bir tür için bir plan gibi geliyor, ancak bir alan koleksiyonunu bir alan koleksiyonunun içine gömebilirsiniz.

Drupal'ın aynı şeyleri yapmanın birçok yolu var, ancak bu iki çözümün ne kadar farklı veya benzer olduğu hakkında çok fazla şey bulamıyorum.

Belki birisi açıklamada yardımcı olabilir?

Yanıtlar:


15

Bu, yeni projelerle karşılaştığımda kendime yaptığım bir soru, Alan Koleksiyonu ile Varlık Referansı + özel varlık arasında veya yapı basitse, Alan Koleksiyonu ile birkaç db sütun / Çok Alanlı özel alan . İşte benim deneyimime dayanan düşüncem .

Multifield harika bir kavramdır, alan koleksiyonunun "hafif" bir versiyonu olur, ilişkilerle bir varlık yapısı oluşturmak yerine, varlığı oluşturmadan basit kullanım durumlarını kapsar. Eksiksiz Özellikler entegrasyonu, gerçekten çok dilli vb. Gibi bir dizi sorunu var (bu yüzden bunu kullanmayı planlıyorsanız, katkılar muhtemelen gerçekten hoş olacaktır).

Field Collection, burada ve orada birkaç değişiklikle yapılabilecek bir site yapıyorsanız, site oluşturuculara, iç kısımlar hakkında fazla endişelenmeden karmaşık yapılar oluşturmak için güçlü bir araç sağlar. Temel olarak, kimlikler tarafından "ana bilgisayar" varlığıyla ilgili bir varlık oluşturur ve bu alana ve her şeye alan eklemeye izin verir. Dezavantajları, Alan koleksiyonunun iç kısımları hakkında, bir Varlık Referansı ile Alan Koleksiyonunu yönetmek veya verileri taşımak gibi karmaşık işlemleri gerçekleştirmek için ihtiyaç duyduğunuz bilgilerdir. Genel bir araç olduğu için, bir adım ötesine geçmek oldukça karmaşık olurdu.

Var olan başka bir seçenek Varlık Referansı ile ECK kullanmaktır , ancak bu konudaki tecrübem şimdiye kadar bir felaket oldu, varlık tipini yardımcı olmadan kodla oluşturmanın daha kolay olduğunu düşünüyorum.

İhtiyacınız olan şey ve projeniz için en uygun olan şey meselesidir, Varlık Referansı ile veri modelinizle ilgili varlık türleri oluşturmak için zamanınız ve geliştiricileriniz varsa, neler olduğu üzerinde daha fazla kontrole sahip olursunuz. veri yapılarınızla karşılaşırsınız, ancak siz bundan da "sorumlu" olursunuz.

Yukarıda açıklanan tüm çözümlerle bir süre test ettikten sonra, ekibimde her zaman + ER varlık türlerine gidiyoruz, ancak küçük projeler için veri taşıma veya karmaşık bir i18n kurulumu olmadan, Alan Koleksiyonu'nun en hızlı yol olduğunu görebiliyorum Git.


Güzel genel bakış. Sadece alan koleksiyonunun göç modülü aracılığıyla taşımayı desteklediğini yorumlamak istiyorum.
lefterav

1
Diğer bir yön, versiyonlama / revizyonlarla ilgilidir. İçerik türleri (düğümler), revizyonları takip etmek için hazır bir çözüme sahiptir ve ekli alan koleksiyonlarındaki değişiklikler üst düğüme yansıtılır. Aksine, işletmelerin kendi revizyonları vardır, atıfta bulunulan kuruluşla ilgisi yoktur.
lefterav

@ lefterav gerçekten, demek istediğim bir alan koleksiyonunu taşımak bazı kullanım durumları için çok zor bir görev olabilir ve açıklanması gerekir.
pcambra

3

Bu gerçekten alanlara girdiğiniz verilere ve onlarla yapmak istediğiniz kullanıma bağlıdır.

Alan Koleksiyonunu kullanmak istiyorsanız, normal görünümlerden çeviriye, solr dizine ekleme vb.

Bir alan koleksiyonuna eklediğiniz bilgileri yeniden kullanmak isterseniz, bir içerik türü veya özel bir varlık kullanmak daha iyi olacaktır. Örnek: Bir okul kursunda 5 konu vardır. Bir konu 3 alan içerir: Başlık, saat ve seviye. Birkaç okul kursunda konuları tekrar kullanacaksanız, İçerik türü / Özel Varlık için gidin ve Varlık referansını kullanın.


0

Performansta kabaca eşdeğer olmalıdırlar, ancak alan koleksiyonu Entity API'sını kullanır ve özel bir içerik türü oluşturmayı gerektirmez.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.