Ecstore 中数据表结构定义 dbschema 详解
详解Ecstore中的数据表结构定义文件dbschema
任何系统的操作无非都是对数据库的各种操作的结合,而对于ecstore的数据库操作可能与其他常见项目有些不太一样。可能有新入手的朋友会尝试在数据库中直接创建表,可是发现创建之后不能使用,那是因为ecstore的缓存机制的原因。ecstore的数据库表不是常规那种直接在数据库中操作增删表的,而是通过定义dbschema目录下的数据表文件进行定义。
官方目录结构对dbschema目录的解释是:
1 |
|
通过文档可以理解,在ecos安装时,会扫描相关app中的dbschema中的文件,用这个文件生成相应的表结构并创建,同时也用来定义desktop app的列表项,即finder列表及操作项。
通常情况下数据库的一个表会对应一个dbschema定义文件(数据库表定义文件)和一个model.数据库表名采用下划线命名法, 并且只允许小写字母
dbschema约定:
表名: {$db_prefix}{$app_name}_{$filename}
数据库表名前缀: {$db_prefix} 系统默认为sdb_, 定义在config/config.php里, DB_PREFIX
文件名: $filename.php
存放目录名: app/{$app_name}/dbschema
完整文件名: app/{$app_name}/dbschema/{$filename}.php
对应的model类名: {$app_name}_mdl_{$filename}
所属app: {$app_name}
dbschema文件内容返回的是一个数组形式,每个键值都有不同的定义,下面给出一个简单的例子加以说明.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
|
表字段orderby => true ,有排序功能,在后台点击时候是排序功能
如,鼠标可点击进行排序
一、字段类型
系统中定义的字段类型有很多,详细可查询官方文档,这里只列出了一些比较特别的.并稍作介绍.
1.关联主键表
1 2 3 |
|
2.枚举类型
1 2 3 4 5 6 7 |
|
3.email类型
//存在数据库中的类型是varchar(255),虽然可以直接写成mysql类型,但在这里写了email类型后,使用dbeav的save时会验证是否是email类型的数据 如果不是将抛出异常.
(跟money类型异曲同工,其实有很多类型由于在程序中我们都有验证,所以可以直接写成mysql类型的)
二、后台finder列表
1.searchtype
列表页中简单搜索的处理方式,如果dbschema中存在searchtype则会在desktop列表上显示相关的简单搜索,而searchtype的类型使用的是dbeav中的过滤器_filter类型
1 2 3 4 5 6 |
|
三、sdfpath
刚开始看到sdfpath时感觉有点***,也不知道是哪位高人前辈命名的~~平时自己做的app也很少用到,所以也没做过多注意.
后来二开order时,又看到这个,感觉好二~~~ 于是有看了下dbschema里后理解了,说下自己的见解,也给大家起点抛砖引玉的作用.
1 2 3 4 5 6 7 8 9 |
|
保存的时候,POST的数组是:
1 2 3 4 5 6 |
|
至此,数据表定义文件dbschema已经大体给介绍完了,虽然有很多详细细节没有讲解,但是结合官方文档查看即可,而本文的介绍的很多是官方文档没有明确介绍的部分,大家可以拿此文和官方文档一起学习。
创建好dbschema文件后,记得cmd update一下哦,不然是无法更新出数据表的。
Ecstore 中数据表结构定义 dbschema 详解相关推荐
- Magento 数据表结构 EAV模型详解
EAV : Entity - Attribute - Value的缩写,是数据库模型的一种,使用eav建模的好处是可以动态为数据模型增加或移除属性. 1.问题提出: 假设需要定义一个实体Custome ...
- java 修改mysql数据库表结构_MYSQL数据库表结构优化方法详解
摘要:这篇MySQL栏目下的"MYSQL数据库表结构优化方法详解",介绍的技术点是"mysql数据库表结构.MySQL数据库.数据库表结构.MySQL.据库表结构.数据库 ...
- 比对两个数据库中数据表结构异同
介绍一个工具用于对比两个数据库数据表结构异同---schema sync(官网:http://schemasync.org/) 是由python写成, 比较两个库结构的时候生成一个patch脚本和一个 ...
- ecstore mysql_详解Ecstore中的数据表结构定义文件dbschema
任何系统的操作无非都是对数据库的各种操作的结合,而对于ecstore的数据库操作可能与其他常见项目有些不太一样.可能有新入手的朋友会尝试在数据库中直接创建表,可是发现创建之后不能使用,那是因为ecst ...
- ecstore mysql_详解Ecstore中的数据表结构定义文件dbschema的特殊字段 | Suvan的随性笔记...
官方目录结构对dbschema目录的解释是: app/{$app_name}/dbschema //{$app_name}是数据库表定义文件 1 app/{$app_name}/dbschema//{ ...
- 2导出指定表结构_大白话详解大数据hive知识点,老刘真的很用心(2)
老刘不敢说写的有多好,但敢保证尽量用大白话把自己复习的内容详细解释出来,拒绝资料上的生搬硬套,做到有自己的了解! 01 hive知识点(2) 第12点:hive分桶表 hive知识点主要偏实践,很多人 ...
- mysql修改表结构例子_mysql修改表结构方法实例详解
本文实例讲述了mysql修改表结构方法.分享给大家供大家参考.具体如下: mysql修改表结构使用ALTER TABLE语句,下面就为您详细介绍mysql修改表结构的语句写法,希望对您学习mysql修 ...
- oracle synonym 表结构,ORACLE SYNONYM详解
以下内容整理自Oracle 官方文档 一 概念 A synonym is an alias for any table, view,materialized view, sequence, proce ...
- python中Excel表的读写改详解
## python中Excel中的读import xlrd#先导入xlrd模块 excel = xlrd.open_workbook('1.xls')# 打开xls文件 print(excel) # ...
最新文章
- what you want from a relationship?
- python 线程间通信之Condition, Queue
- Leetcode 每日算法一题*****#495. 提莫攻击
- log4j教程 11、日志记录到文件
- 复盘人生第一次科研经历
- JAVA JVM优化总结
- hadoop面试题以及答案
- Tensorflow SavedModel 模型的保存和加载
- CDH集群更换IP处理方法
- 电脑重装系统后如何把网站设为首页
- 微博官方自助服务一键批量取消微博全部关注方法
- oracle to_char 进制转换_ORACLE函数TO_CHAR以及数字转换格式
- SimpleMind 1.27.1 小巧的思维导图工具
- Flink流式计算从入门到实战 三
- 直击微软第九频道著名主持Robert Green 对话一站式示例代码库大老板梁梅女士
- 关于iOS的自动弹出键盘问题
- 用C语言中的结构体实现简单的学生成绩管理系统
- Java程序员11面阿里,错失offer,期间还面了EMC+网易+美团......
- 土木工程成功转行Python,月入13k,太香......
- 传奇游戏架设与M2修改常见问题收集(大合集)