web-gelistirme-sc.com

Yeni bir içerik türü eklemeye karşı bir Varlık oluşturmak ne zaman uygundur?

Yalnızca yeni bir içerik türü oluştururken yeni varlık türleri oluşturmanın yararı nedir?

İçerik türlerinde zaten yerleşik olan tüm CRUD ve Views işlevlerine sahip olduğunuzda yeni bir varlık oluşturmak için gereken tüm özel kodlamayı yapmak biraz abartılı görünüyor.

86
revolt

Faydaların ne olduğu hakkında değil, daha önce de söylediğin gibi belirli bir durum için neyin uygun olduğu hakkında daha fazla. Düğümle hemen hemen her şeyi temsil edebilirsiniz ve durumların% 99'u için (en azından bulduğum gibi) özel varlık türlerini uygulamanız gerekmez.

Her zaman taxonomy_term varlık türü, neden her şeyin bir düğüm/içerik türü olmaması gerektiğine iyi bir örnek olarak:

Bir sınıflandırma terimi esasen farklı varlıkları bir arada gruplamak içindir ve bu nedenle bir düğümle aynı işlevselliği gerektirmez. olabilir teorik olarak bu işlevselliği gerçekleştirmek için bir içerik türünü (belki de bir düğüm referans alanı ile) kullanmakla birlikte, bir sınıflandırma teriminin düğüm ile aynı şeyi yapması gerekmez, bu yüzden gerçekten bunu yapmak mantıklı. Aynı şey user ve taxonomy_vocabulary varlık türleri.

Bu nedenle, bir sınıflandırma terimi ayrı bir varlık olarak oluşturulur ve yalnızca alanların eklenebilmesinden yararlanırken, yalnızca ihtiyaç duyduğu şeyi yapmak üzere programlanır.

Bence basit cevap, bir düğüm/içerik türü yapmaz ihtiyacınız olanı yaptığınızda veya çok az fayda için çok büyük bir overkill/tepegöz olduğunda, o zaman özel bir varlık yaz.

Bu sadece kişisel deneyimlerime dayanıyor; Birinin doğrudan Drupal temel gelişimin bu konuda söylediklerini duymak isterim.

66
Clive

Kullandığım çok basit bir kural, içeriğinizin kendi başına herkese açık olarak görüntülenmesi gerekip gerekmediğidir. Öyleyse, bir varlık seçmezseniz düğüm için gidin. Entityforms artık varlıklarınızı doldurmak için bir arayüz oluşturmanıza izin veriyor.

Örneğin, D6 ile yapılan bir web sitesinde bir reklam içerik türü oluşturuyoruz (resim alanı, başlangıç ​​/ bitiş görüntüleme tarihi ile ...), ancak daha sonra yayınlanmadı ve editörlerinize varsayılan olarak bu düğümü düzenleme/görüntüleme hakları verin ve bunları dış dünyada görüntülemenin/aramanın görüntülenmeyeceğini umun. Oldukça hantal ve varlıklarla başa çıkmak daha kolay olurdu.

16
tostinni

Bir varlık belirli bir kullanım durumunu temsil eder.

Ben bu basit tanım için kredi Fago gider inanıyorum, ama bir referans bulmak için tembel değilim.

İstersek, tüm kullanım durumları için Content (aka Nodes) kullanabiliriz, ancak çoğu zaman mantıklı değildir.

Content, hem yorumlar hem de menü konumu için bir yazara ve ayarlara sahiptir.

Users, Content öğesinden yeterince farklı bir kullanım örneğini temsil eder, çünkü yukarıdakilerin hiçbiri user üzerinde herhangi bir anlam ifade etmezken, diğer taraftan bir user bir e-postaya ve bir şifreye sahip olmalıdır.

Taxonomy terms göze çarpıyor çünkü hiyerarşide, hatta dairesel bir düzende düzenlenecek yerleşik işlevselliklere sahipler.

Kullanım durumunuz mevcut bir varlığa yeterince benziyorsa, bu varlığı kullanmaya devam edin. Varlığınız mevcut kurallardan önemli ölçüde farklı kurallara tabiyse, yeni bir kural oluşturun.

Ayrıca Varlıklara Giriş , ama ne yazık ki sorunuza gerçekten cevap vermiyor.

12
Letharion

Her şey bağlamla ilgili olduğunu düşünüyorum, bir düğüm büyük ölçüde içerik için kullanılır, böylece bloglar, makaleler, SSS vb olacaktır. Personel, müşteriler vb. Gibi profiller için kullanıcı olurken Yeni bir enitity oluşturabileceğiniz örnek:

  • Forum
  • Proje (proje yönetimi açısından)
  • Form
  • Destek bileti
  • Grup

Bir destek bileti gibi bir şey için bir düğüm kullanabilirsiniz, ancak en iyi şablon ve varsayılanlar olmayabilir ... Umarım yardımcı olur.

5
WestieUK

İşletmeler, sahip oldukları tüm ağır hizmet işlevlerine sahip olmaları gerekmediğinden düğümlerden daha az ek yük ile oluşturulabilir.

Ayrıca, depolama işleminin daha kolay olabileceği anlamına gelir - isterseniz, basit bir sorgudaki tüm bilgileri JOINS olmadan almak için oluşturabilirsiniz. Tüm alanlar sadece tek bir düzenli tabloda güzel.

Varlıklar üzerinde sorgular yapmanız gereken çok sayıda işleviniz varsa ve veritabanına UPDATE sorguları ile aynı anda çok sayıda varlığı güncelleştiriyorsanız, bu büyük bir avantaj olabilir. Verilerin tek bir tabloda göreceli olarak bağımsız olduğundan emin olabilirseniz, daha az endişe ve veri bozulması olasılığınız vardır.

1
James

Bir içerik türü, site içeriği olarak tasarlanmıştır. Diğer bir deyişle, her içerik türü yayınlanacak ve sitede görünecek şekilde tasarlanmıştır. Örneğin, bir makale (kutudan çıkarılmış) ilk sayfada görünecek şekilde tasarlanmıştır.

Şimdi, bir istihdam veya apartman başvuru formu gibi bir şey oluşturmak istediğinizi varsayalım. Açıkçası, birinin istihdam başvurusunu web sitenizde yayınlamak istemezsiniz. Ayrıca, müşteri/müşteri adaylarının bir listesini oluşturmak isterseniz ne olur? Bu bilgilerin yanlışlıkla web sitenizde yayınlanma şansına sahip olmak ister misiniz? Şahsen ben yapmazdım.

Dolayısıyla, yukarıda tartışılan varlık formu modülü. İçerik olarak tasarlanmamış bir varlık türü oluşturmanıza olanak tanır. Ancak, bu varlık türleri, kurallar, görünümler ve organik grup gibi varlıkları destekleyen herhangi bir modül tarafından yalnızca birkaç tanesini kullanabilir.

Ve sonra Drupal Ürünlerin varlık türleri olduğu ticarete girersiniz. Temel olarak varlıklar geliştiricilerin Drupal orijinal tarafından asla öngörülmediği şekilde genişletmelerini sağlar Drupal tasarımcılar.

0
Den Solis

Bu tartışmaya açıktır ve sonunda kararlarınızı geliştirici olarak vermelisiniz.

Verilerin kendi URL'leriyle herkese açık olarak sunulmaması gerektiğinde düğümler üzerinden varlıkları seçerim. Düğümler varsayılan olarak bir URL takma adı, yayınlanmış durumu, bir başlık, meta etiketler ... alırken, varlıklar veritabanında sadece bir kayıt alır.

"Mümkün olduğunca çok metin içeren banner ekleyebilmek istiyorum ve sonra bir blog yazısında bunlardan birini seçin"

  • İçerik türü 'Blog' olurdu
  • Özel varlık 'Banner öğesi' olurdu
0