2010-06-17 3 views
5

J'ai récemment créé une table CRUD très simple où l'utilisateur stocke certaines données. Pour les données, j'ai créé un noeud personnalisé. La fonctionnalité fonctionne bien pour créer, éditer et supprimer des données dans la table CRUD en utilisant la fonctionnalité de base du nœud (je suis vraiment étonné de la rapidité et de la facilité de programmer les fonctionnalités de base avec des contrôles d'accès appropriés)Quand ne pas utiliser un noeud Drupal?

Étant donné que les données ne sont pas destinées à être traitées de la même manière que le «contenu», comme un article de blog (aucun titre, aucun corps, aucun commentaire, aucune révision, ne devrait pas apparaître? q = page de noeuds, pas de prévisualisation, pas de teasers, etc) ... Je trouve que je passe le plus clair de mon temps à 'éteindre' et à modifier les choses que drupal fait automatiquement pour les noeuds. Je sais que c'est une question de goût, mais où devrait-on tracer la ligne sur ce qui devrait être traité comme un nœud et ce qui ne devrait pas? En d'autres termes, serait-il préférable de programmer ces choses à partir de zéro sans utiliser de nœuds?

+0

En guise de suivi ... j'ai décidé de ne pas utiliser un nœud dans mon cas particulier. J'ai senti que j'utilisais simplement un morceau de «données» qui (dans mon esprit) n'exigerait jamais des choses comme les commentaires et le contrôle de version; et serait pour la plupart gardé personnel à un utilisateur individuel (pensez aux données financières). J'ai décidé qu'il était plus facile de gérer pas comme un nœud. Cela étant dit, le système de menus Drupal, l'API de formulaire et l'API de base de données rendent encore le 'workflow' facile à programmer et à personnaliser. Divulgation: J'aime le contrôle que je gagne en n'utilisant pas CCK/views (mais c'est une question de goût je suppose). – stotastic

Répondre

6

Utilisation de nœuds pour les données personnalisées a tout à fait quelques avantages supplémentaires en plus de modifier/mise à jour facile/fonctionnalité de suppression:

  • catégorisation possible via la taxonomie
  • implicite la « propriété » par l'auteur suivi
  • suivi implicite de la création/temps de modification
  • contrôle d'accès de base par défaut, extensible par une vaste sélection de modules
  • génération de requête flexible/liste/filtrage via vues
  • possibles ad hoc extensions/annotations via les champs CCK
  • définition possible des flux de travail, des actions et autres
  • un grand nombre de crochets pour intercepter programme/ajuster aspect presque chaque utilisation/scénario
  • commentaires, vote , la notation et des tonnes d'autres fonctionnalités fournies par tous les modules ont contribué qui travaillent sur/avec des nœuds ...

Compte tenu de tout cela, je dirais que vous avez besoin d'une très bonne raison de pas nœuds d'utiliser pour stocker des données à Drupal. Les nœuds sont simplement les blocs de construction fondamentaux pour à peu près tout dans l'écosystème Drupal, et la suppression de certaines «caractéristiques» par défaut indésirables semble plutôt faible par rapport aux gains. Cela dit, une raison/un argument possible pour manipuler des données séparées du système de nœuds pourrait être que ces données visent directement à annoter d'autres nœuds (pensez à la taxonomie). Mais puisque vous pouvez facilement référencer des nœuds d'autres nœuds (avec beaucoup d'options différentes pour ce faire), l'argument n'est pas fort.

Un autre (beaucoup plus fort) argument serait l'intégrité des données-Drupal est pas très forte (pour le dire poliment) en ce qui concerne le stockage de données normalisées, relationnelle, l'intégrité référentielle, la gestion des transactions et d'autres sujets connexes. Si vous avez des besoins dans ce sens, vous n'aurez pas d'autre choix que d'ignorer le concept de nœud et de créer et gérer vous-même un îlot de données distinct dans le système.

3

Il est utile de penser également qu'un nœud n'a pas besoin d'être public non plus. Certains nœuds sont privés/internes et peuvent être contrôlés avec des contrôles d'accès. La façon dont vous le faites, quoi que vous fassiez, fait toute l'évolutivité et l'étend sur vos épaules.

Je l'aborderais probablement avec CCK/Taxonomy en fonction de ce que je faisais. De cette façon, j'ai l'avantage supplémentaire d'intégrer le module Views/Panels/etc sans écrire de code supplémentaire.

+0

Pouvez-vous préciser ce que vous entendez par «nœuds privés/internes»? Y a-t-il des exemples que vous pouvez indiquer? – stotastic

+0

Tout le contenu de Drupal n'est pas nécessairement public sur un site Web. Cela dépend de ce que vous essayez de faire. Par exemple, s'il n'a pas besoin d'un corps, désactivez ce champ dans le type de contenu. S'il n'a pas besoin d'un titre, implémentez le module Titres automatiques de noeud et il le cachera. Vous pouvez désactiver les commentaires pour les types de nœuds. Pour désactiver le noeud ou /? Q = noeud, vous pouvez modifier la page de garde dans Informations sur le site. – Kevin

+0

@stotastic Les nœuds Eventhough sont le contenu principal d'un site, cela ne signifie pas que tout le monde peut y accéder. Avec différents modules, vous pouvez créer différentes règles d'accès basées sur des types de nœuds de taxonomie, etc. Lorsque vous conservez les nœuds, vous obtenez la puissance que chaque module qui fonctionne avec des nœuds fonctionnera avec votre table CRUD, sans avoir à faire de travail supplémentaire . Cela peut aussi être un excellent gain de temps. – googletorp

Questions connexes