Mevcut alanları kullanmanın doğru yolu nedir?


13

Ben bir Drupal acemiyim. İçerik türlerine alan ekleme konusunda biraz kafam karıştı.

Durum 1: Üç içerik türleri varsa varsayalım Book, Article& White Paper. AuthorsTüm yazarların listesini içeren bir sözlük oluşturdum .

  1. Şimdi, her içerik türü için "Yazan" alanı (Yazarlara terim referansı) mı oluşturmalı yoksa bir içerik türü için alanı mı oluşturmalı ve diğer içerik türlerinde mi kullanmalıyım?

  2. Her iki yöntemin de avantajları / dezavantajları nelerdir?

  3. Yeniden kullanılan bir alanı bir içerik türünden silersem ne olur? Diğerlerinde silinir mi?

Durum 2: İçerik türlerini araştırıyorum: (belirtilen alan gereksinimleriyle)

+--------------+----------------------+
| Content Type | Field Required       |
+--------------+----------------------+
| Book         | Year of publication  |
+--------------+----------------------+
| Presentation | Date of Presentation |
+--------------+----------------------+
| Article      | Date of Publication  |
+--------------+----------------------+
| Event        | Held On              |
+--------------+----------------------+

Ne yapmalıyım? Bir içerik türü için tek bir alan oluşturmalı ve diğer tüm içerik türleri için kullanmalı mıyım veya her içerik türü için alan oluşturmalı mıyım?

Mevcut alanları ne zaman ve nasıl kullanacağımı net bir şekilde anlamama yardımcı olun.

Yanıtlar:


8

Her içerik türü için "Yazan" alanı mı (Yazarlar için terim referansı) mı yoksa bir içerik türü için alanı mı oluşturmalı ve diğer içerik türlerinde mi kullanmalıyım?

Farklı içerik türleri için aynı bilgileri toplamanız gerekiyorsa, tek bir alan kullanmalısınız. "Yazan" alanınız bunun için mükemmel bir durum gibi görünüyor. Yazarlarınız için farklı kelime dağarcığınız varsa, "Kitap yazarı", "Makale yazarı" vb. Deyin, her biri için ayrı alanlar kullanmak istersiniz (ve gerekir).

Her iki yöntemin de avantajları / dezavantajları nelerdir?

Bir avantaj, tüm içerik türlerini tek bir alana göre sorgulayabilmenizdir. Dolayısıyla, tek bir yazar tarafından yazılan tüm içeriği veya tüm yazarlar tarafından yazılan tüm içeriği görüntülemek istediğinizi düşünüyorsanız, bunu yapmak için bir görünüm oluşturmak kolay olacaktır. Ancak bu sadece ihtiyacınız olduğunda faydalıdır. Asıl mesele, alanın kullanım durumunun aslında her iki yöntemin göreceli avantajlarını / dezavantajlarını dikte edeceğidir.

Ayrıca, her alan oluşturduğunuzda iki veritabanı tablosu oluşturursunuz (biri geçerli veriler için, biri revizyon verileri için). Bu depolama yönteminin performans açısından en iyi fikir olup olmadığı konusunda "karışık" duygular var ve bazı insanlar tablo sayısını düşük tutmayı tercih ediyor. Varolan bir alanı başka bir içerik türüne eklediğinizde, hepsi için aynı veritabanı tablosu kullanılır, böylece kutu işaretlenir. Yine de, bu sadece verileriniz ayrılabildiğinde mantıklıdır.

Yeniden kullanılan bir alanı bir içerik türünden silersem ne olur? Diğerlerinde silinir mi?

Alan yalnızca tüm içerik türlerinden ayrıldıktan sonra silinir. Alanı ayırdığınız içerik türüne ait veriler silinmiş bir veri tablosuna taşınır ve cron çalıştırmaları sırasında temizlenir.

Dava 2'ye ve sadece kendinize şunu sorun ...

Her içerik türünün aynı alan örneği için farklı etiketlere sahip olabileceğinizi unutmayın, bu size veriler arasındaki farkları bildirmek için yeterli görsel (veya veri yönlendirmeli) ipucu verir mi?

Öyleyse, yukarıda belirtilen avantajları elde etmek için tek bir tarih alanı kullanın. Değilse, veri alanınız için ayrı alanlara sahip olmak daha mantıklıdır.

Her şey kendi web sitenize uygun olana iner, ancak umarım yukarıdakiler size bir tür yol verecektir.


Bunu anlamadım:Keeping in mind that you can have different labels for each content type's instance of the same field, will that give you enough of a visual (or data-led) cue to let you know the differences between the data?
pençeleri

4
Sadece verilerinizle ne yapmanız gerektiğine karar vermenin size bağlı olduğunu kastediyorum - yayın ve sunum tarihini örnek olarak almak, bunların ayrılması sizin için önemli mi? İçeriği bu tarihe göre filtrelemeniz mi gerekiyor? Tek bir alan kullanırsanız size istenmeyen sonuçlar verir ve bu alana filtre uygularken tüm içerik türleri için veri alır mı? Bunlar kendinize sormanız gereken sorular. Bu gerçekten bir veri tasarım sorunu, Drupal'ın varlık / alan sistemi sadece soyutlama katmanı. Bunu Drupal'ın dışında tasarlarsanız, bu verileri aynı tabloya yerleştirir misiniz?
Clive
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.