详解Ecstore中的数据表结构定义文件dbschema的特殊字段

官方目录结构对dbschema目录的解释是:

通过文档可以理解,在ecos安装时,会扫描相关app中的dbschema中的文件,用这个文件生成相应的表结构并创建,同时也用来定义desktop app的列表项,即finder列表及操作项。

通常情况下数据库的一个表会对应一个dbschema定义文件(数据库表定义文件)和一个model.数据库表名采用下划线命名法, 并且只允许小写字母

dbschema约定:

数据库表名前缀: {$db_prefix} 系统默认为sdb_, 定义在config/config.phpDB_PREFIX

dbschema文件内容返回的是一个数组形式,每个键值都有不同的定义,简单的例子如下:

一、字段类型

系统中定义的字段类型有很多,详细可查询官方文档,这里只列出了一些比较特别的.并稍作介绍.

1.关联主键表

2.枚举类型

3.email类型

//存在数据库中的类型是varchar(255),虽然可以直接写成mysql类型,但在这里写了email类型后,使用dbeav的save时会验证是否是email类型的数据 如果不是将抛出异常。

(跟money类型异曲同工,其实有很多类型由于在程序中我们都有验证,所以可以直接写成mysql类型的)

二、后台finder列表

1.searchtype

列表页中简单搜索的处理方式,如果dbschema中存在searchtype则会在desktop列表上显示相关的简单搜索,而searchtype的类型使用的是dbeav中的过滤器_filter类型

三、sdfpath

刚开始看到sdfpath时感觉有点懵逼,也不知道是哪位高人前辈命名的~~平时定义表结构,不写sdfpath也没什么问题,后来见得多了,于是有看了下dbschema里后理解了,说下自己的见解。

保存的时候,POST的数组是:

至此,数据表定义文件dbschema已经大体给介绍完了,虽然有很多详细细节没有讲解,但是结合官方文档查看即可,而本文的介绍的很多是官方文档没有明确介绍的部分,大家可以拿此文和官方文档一起学习。

创建好dbschema文件后,记得cmd update一下哦,不然是无法更新出数据表的。

  • 详解Ecstore中的数据表结构定义文件dbschema的特殊字段已关闭评论
  • 103 views
    A+
发布日期:2017年01月23日  所属分类:shopex产品  web开发
标签: