2010-06-17 43 views
5

我最近创建了一个非常简单的CRUD表,用户存储一些数据。对于这些数据,我创建了一个自定义节点。该功能非常适合使用基本节点功能在CRUD表中创建,编辑和删除数据(实际上,我惊讶地发现使用适当的访问控制仅使用一小部分代码来编程基本功能的速度和方便) ...何时不使用Drupal节点?

由于数据并不意味着像'内容'一样对待,比如博客文章(没有标题,没有主体,没有内容,没有修改,不应该显示? q =节点页面,没有预览,没有teasers等)...我发现我花了大部分时间“关闭”并修改了drupal自动为节点执行的操作。

我知道它的味道,但应该在哪里应该被视为一个节点,什么不应该在哪里画线?换句话说,如果不使用节点,从头开始编写这些东西会更好吗?

+0

作为后续...我决定不使用节点是我特别的实例。我觉得我只是简单地使用了一段'数据'(在我看来)永远不需要评论和版本控制之类的东西;并且大多数情况下都会保留给个人用户(考虑财务数据)。我决定处理不是一个节点更容易。话虽如此,Drupal的菜单系统,表单API和数据库API仍然使得'工作流程'易于编程和定制。披露:我喜欢从不使用CCK /视图获得的控制权(但这是我想要的品味问题)。 – stotastic 2010-06-21 22:26:39

回答

6

使用节点以自定义数据有相当一些额外的好处除了方便编辑/更新/删除功能:通过分类

  • 可能的分类
  • 通过笔者跟踪
  • 创作的隐含跟踪隐“所有权” /修改时间
  • 默认情况下的基本访问控制,可通过大量模块选择扩展
  • 灵活的查询生成/列表/过滤通过意见
  • 可能特设扩展/通过CCK领域注释工作流程,操作
  • 可能的定义和挂钩的像
  • 一个庞大的数字,以编程方式拦截/调整几乎每一个使用样/场景
  • 评论,投票,等级和吨的所有贡献模块上工作/与节点所提供的其他功能...

考虑到这一切,我会说你需要一个很好的理由来存储数据使用节点在Drupal中。节点只是几乎所有Drupal生态系统中的基本组成部分,删除一些不需要的默认“功能”的开销似乎与增益相比非常小。也就是说,处理与节点系统分离的数据的一个可能的原因/参数可能是如果该数据直接针对注释其他节点(认为是分类学)。但是因为你可以很容易地引用其他节点的节点(有很多不同的选项来说明如何实现这一点),所以这个论点并不强。

另一个(强得多)的说法是数据完整性 - Drupal是不是很强(礼貌地说)关于标准化,关系数据存储,参照完整性,事务处理以及其他相关主题。如果您有这方面的要求,您可能别无选择,只能跳过节点概念,并自行在系统内创建和维护独立的数据岛。

3

它也有助于认为节点不需要公开。有些节点是私人/内部的,可以通过访问控制进一步控制。无论你在做什么,你做这件事的方式都会让你的肩膀上的可扩展性得到提升。

我可能会用CCK /分类学来处理它,这取决于我在做什么。这样,我无需编写任何附加代码即可获得Views/Panels/etc模块集成的额外优势。

+0

你能否详细说明'私人/内部'节点的含义。你能指出什么样的例子吗? – stotastic 2010-06-17 14:29:34

+0

并非所有的Drupal内容都必须在网站上公开。这取决于你想要做什么。例如,如果它不需要正文,请在内容类型中禁用该字段。如果它不需要标题,则实现“自动节点标题”模块,并将其隐藏。您可以禁用节点类型的注释。要禁用节点或/?q =节点,您可以更改站点信息中的首页。 – Kevin 2010-06-17 14:39:48

+0

@stotastic Eventhough节点是网站上的主要内容,但并不意味着每个人都可以访问它们。使用不同的模块,您可以根据分类节点类型等创建不同的访问规则。当您保留节点时,您可以获得与节点一起工作的每个模块都可以与CRUD表一起工作而无需执行任何额外工作的能力。这也可以是一个很好的节省时间。 – googletorp 2010-06-17 14:40:15