drupal的数据模型之一——版本维护与多语种

  在实施完一个网站的内容管理之后,抽空看了drupal,我的关注点在数据库表设计。遗憾的是没有找到其数据模型的文档。所以不得不一边按教程做实例,一边观察后台数据的变化,以此试图理解其数据模型。
  相关工具及用途如下:

  • drupal-6.16:研究对象
  • phpmyadmin:观察后台数据
  • AmaterasUML:描述数据模型


  drupal非常简洁地用两个表,就解决了内容的版本维护和多语种的问题。这两个表是node(内容节点)表和node_revisions(节点修订版本)表。

  前者描述节点的基本属性,与一条确定的内容对应,字段含义如下:

No.Logical NamePhysical NameTypeNullDefault ValueDescription
1 nid nid MEDIUMINT(10) N AUTO INCREMENT
节点id
2 vid vid MEDIUMINT(10) N 当前版本id
3 type type VARCHAR(32) N 节点类型
4 language language VARCHAR(12) N 语种
5 title title VARCHAR(255) N 题名
6 uid uid INT(10) N 节点编辑用户id
7 status status INT(10) N 状态
8 created created INT(10) N 建立时间
9 changed changed INT(10) N 修改时间
10 comment comment INT(10) N 评论设置
0:禁止新的评论,并隐藏已有评论
1:禁止新的评论,但显示已有的评论
2:允许评 论,并显示已有评论
11 promote promote INT(10) N 推荐首页
12 moderate moderate INT(10) N 评论设置
13 sticky sticky INT(10) N ??
14 tnid tnid MEDIUMINT(10) N 翻译的源节点
15 translate translate INT(10) N 已翻译

 

  后者记录节点的各个修改版本。字段含义如下:

No.Logical NamePhysical NameTypeNullDefault ValueDescription
1 nid nid MEDIUMINT(10) N 节点id
2 vid vid MEDIUMINT(10) N AUTO INCREMENT
节点版本
3 uid uid INT(10) N 编辑节点的用户id
4 title title VARCHAR(255) N 题名
5 body body LONGTEXT N 正文
6 teaser teaser LONGTEXT N 正文摘要
7 log log LONGTEXT N 日志备注
8 timestamp timestamp INT(10) N 创建时间
9 format format INT(10) N 格式

 

node_revisions通过表中的nid指向node中的多版本对应的同一个内容节点。

node则通过tnid指向多语种翻译对应的源节点,可以图示如下:

node与node_revisions关系图

附件是AmaterasUML生成的html格式的数据库表说明。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值