joomla5.1表结构关系二:内容管理自定义字段表结构关系

现在开源的框架都有自定义字段功能,用来根据项目情况扩展额外的字段信息,drupal/joomla/wordpress都有这方面的设置及插件。在了解功能操作的同时,清楚表结构关系,会对我们定制开发有更清晰的认识。

1,涉及表

lzh_fields 扩展字段主表
lzh_fields_categories 字段分类关系表
lzh_fields_groups 字段分组表
lzh_fields_values 扩展字段存储值表

2,表字段说明,由于开源系统一般字段comment为空,没有相关说明。现整理如下:

(1)lzh_fields表

CREATE TABLE lzh_fields (
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
asset_id INT(10) UNSIGNED NOT NULL DEFAULT ‘0’,//lzh_assets表ID
context VARCHAR(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ‘’,//扩展类型名称
group_id INT(10) UNSIGNED NOT NULL DEFAULT ‘0’,//所属字段组ID
title VARCHAR(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ‘’,//字段中文名称
name VARCHAR(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ‘’,//字段名
label VARCHAR(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ‘’,//标签
default_value TEXT COLLATE utf8mb4_unicode_ci,//默认值
type VARCHAR(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ‘text’,//字段类型
note VARCHAR(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ‘’,//备注
description TEXT COLLATE utf8mb4_unicode_ci NOT NULL,//说明
state TINYINT(4) NOT NULL DEFAULT ‘0’,//状态
required TINYINT(4) NOT NULL DEFAULT ‘0’,//是否必选(填)字段
only_use_in_subform TINYINT(4) NOT NULL DEFAULT ‘0’,//仅在子表单(Subform)中使用
checked_out INT(10) UNSIGNED DEFAULT NULL,//编辑人
checked_out_time DATETIME DEFAULT NULL,//编辑时间
ordering INT(11) NOT NULL DEFAULT ‘0’,//排序
params TEXT COLLATE utf8mb4_unicode_ci NOT NULL,//扩展“选项“信息
fieldparams TEXT COLLATE utf8mb4_unicode_ci NOT NULL,//扩展 标签过滤类型 最大字符数量
language CHAR(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ‘’,//语言
created_time DATETIME NOT NULL,//创建时间
created_user_id INT(10) UNSIGNED NOT NULL DEFAULT ‘0’,//创建人
modified_time DATETIME NOT NULL,//更新时间
modified_by INT(10) UNSIGNED NOT NULL DEFAULT ‘0’,//更新人
access INT(11) NOT NULL DEFAULT ‘1’,//访问级别
PRIMARY KEY (id),
KEY idx_checkout (checked_out),
KEY idx_state (state),
KEY idx_created_user_id (created_user_id),
KEY idx_access (access),
KEY idx_context (context(191)),
KEY idx_language (language)
) ENGINE=INNODB AUTO_INCREMENT=54 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

check_out
check_out_time
文章在编辑时会被check out,这样其他人不能修改check out状态的文章,只有等到编辑完成后,check out状态才会解除。但有时候可能未编辑完就关闭,或者浏览器出错等等,这样文章会一直保持check out状态。Global Check-in就是解决这个问题的工具。

通过表数据是可以查看的,在编辑时,check_out和check_out_time才会有值。编辑完成后就会为空。
在这里插入图片描述

(2)lzh_fields_categories表

CREATE TABLE lzh_fields_categories (
field_id INT(11) NOT NULL DEFAULT ‘0’,//lzh_fields 表主键ID
category_id INT(11) NOT NULL DEFAULT ‘0’,//所属分类ID
PRIMARY KEY (field_id,category_id)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

category_id 新建/编辑字段时,选择的分类
在这里插入图片描述

(3)lzh_fields_groups表

CREATE TABLE lzh_fields_groups (
id int(10) unsigned NOT NULL AUTO_INCREMENT,
asset_id int(10) unsigned NOT NULL DEFAULT ‘0’,//lzh_assets表ID
context varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ‘’,//扩展类型名称
title varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ‘’,//字段组名
note varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ‘’,//备注
description text COLLATE utf8mb4_unicode_ci NOT NULL,//说明
state tinyint(4) NOT NULL DEFAULT ‘0’,//状态
checked_out int(10) unsigned DEFAULT NULL,//编辑人
checked_out_time datetime DEFAULT NULL,//编辑时间
ordering int(11) NOT NULL DEFAULT ‘0’,//排序
params text COLLATE utf8mb4_unicode_ci NOT NULL,//扩展“选项“信息
language char(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ‘’,//语言
created datetime NOT NULL,//发布选项-创建时间
created_by int(10) unsigned NOT NULL DEFAULT ‘0’,//发布选项-创建人
modified datetime NOT NULL,//发布选项-修改时间
modified_by int(10) unsigned NOT NULL DEFAULT ‘0’,//发布选项-修改人
access int(11) NOT NULL DEFAULT ‘1’,//访问级别
PRIMARY KEY (id),
KEY idx_checkout (checked_out),
KEY idx_state (state),
KEY idx_created_by (created_by),
KEY idx_access (access),
KEY idx_context (context(191)),
KEY idx_language (language)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

(4)lzh_fields_values表

CREATE TABLE lzh_fields_values (
field_id INT(10) UNSIGNED NOT NULL,//lzh_fields 字段表ID
item_id VARCHAR(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT ‘Allow references to items which have strings as ids, eg. none db systems.’,//扩展字段所属类型的ID(文章ID或分类ID)
value MEDIUMTEXT COLLATE utf8mb4_unicode_ci,//扩展字段保存的值
KEY idx_field_id (field_id),
KEY idx_item_id (item_id(191))
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

  • 32
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值