Drupal Field collection vs Drupal Compound fields

24 Dec 2014

Joris Snoek - Business Dev
+31 (0)20 - 261 14 99

Wij zijn momenteel bezig met een mooi project waar Drupal voornamelijk voor backend content management ingezet gaat worden. Het frontend zal ontwikkeld worden in Knockout JS.

Om gegevens uit te wisselen tussen deze twee systemen bouwen we een API in Drupal met behulp van de 'Services' module. We zullen gegevens via een 'RESTful' API uitwisselen.

Content model

Momenteel zijn we bezig met modelleren van de data: het definiëren van content types en fields. 

Hierin ziet het content type 'Story' er in concept als volgt uit:

(Mooi handschrift hè ;-) )

Netjes vertaald:

Set van gegevens

Zoals je ziet krijgen we te maken met sets van items binnen een stuk content. Dus content manager moet een oneindig veel 'sory sets' aan kunnen maken binnen de story. Dit wordt gebruikt om voor de website bezoeker een pagina te beheren, die er grof gezien als volgt uit ziet:

 

Drupal modules Field collection & Multifield

Hierin krijgen we dus veel te maken met sets van contentEen voor de hand liggend keuze voor het beheren hiervan in het Drupal cms is de module 'Field collection' . Daarmee kan je sets van fields binnen één content type definiëren en vervolgens content hierin gebruikersvriendelijk laten beheren.

Wanneer je een relatief eenvoudig Drupal systeem hebt, dan is de 'Field collection' module een prima keuze, er zijn niet voor niets bijna 700.000 downloads en bijna 100.000 Drupal installs. 

Ook de module Multifield zou interessant kunnen zijn, deze is alleen nog in Alpha1 versie en dus niet inzetbaar op een productie omgeving.

Waarom compound fields

Maar in dit project gaat het voornamelijk om het bouwen van een RESTful API. Dan is de 'Field collection' module wat omslachtig, daar kom je vrij snel achter zodra je de API gaat programmeren. Wij geven in dit geval de voorkeur aan 'compound fields'

Wij kiezen voor Compound fields in plaats van Field collection:

  • Data van één set geclusterd in één tabel database, ipv verschillende
  • Minder overhead: geen extra entiteit
  • Drupal systeem is leniger: beter schaalbaar, betere performance

Configureren vs programmeren

Field collections zijn relatief eenvoudig te configureren, compound fields moet je zelf middels code definiëren. Je bent initieel zeker meer tijd kwijt hierdoor, maar dit haal je later in het project heel snel in. Je data wordt consistenter weg gezet in de database en je hebt de flow van data zelf in de hand.

Technische toelichting

Ik zal in een volgend blog de technische implementatie toelichtingen. Kan je niet wachten: raadpleeg de Field example module uit de Drupal core.

Wrap up

OK, that's it for now. Laat het me weten als je vragen/feedback hebt. 

Cheers!

Bron foto

Comments

Nóg meer
kennis nodig?

Check ons ons blog archief >