ecos的dbschema
dbschema
base/dbschema/apps.php
<?php
//apps表名
$db['apps'] = array(
'columns'=>array(
'app_id'=>array(
'type'=>'varchar(32)',
'required'=>true,
'default'=>'',
'pkey'=>true,
// begin 和 desktop 相关
'with'=>100,
'label'=>app::get('base')->_('程序目录'),
'hidden'=>1,
'editable'=>false,
'in_list'=>true,
'default_in_list'=>false
),
'app_name'=>array(
'type'=>'varchar(50)',
//begin 和 desktop相关
'with'=>150,
'label'=>app::get('base')->_('应用程序'),
'is_title'=>1,
'in_list'=>true,
'default_in_list'=>1
),
'status' => array(
'type' => array (
'installed' => app::get('base')->_('已安装, 未启动'),
'resolved' => app::get('base')->_('已配置'),
'starting' => app::get('base')->_('正在启动'),
'active' => app::get('base')->_('运行中'),
'stopping' => app::get('base')->_('正在关闭'),
'uninstalled' => app::get('base')->_('尚未安装'),
'broken' => app::get('base')->_('已损坏'),
),
// begin 和desktop相关 ----------------------
'label' => app::get('base')->_('状态'),
'width' => 100,
'default' => 'uninstalled',
'in_list' => true,
'default_in_list' => true,
// end --------------------------------------
),
'remote_config'=> array(
'type'=>'serialize'
)
),
'version'=>'$Rev: 44008 $',
'unbackup'=>true
);
上述代码经过解析生成sql语句
dbschema来描述表结构
ecos安装时,会扫描相关app中的dbschema中的文件,用这个文件生成相应的表结构并创建
约定base/dbschema/apps
生成的表sdb_base_apps sdb表前缀 base是appname
对应model base_mdl_apps
columns
表字段
注意!type字段类型,pkey是否主键,extra=>'auto_increment'自增长,type=>'table:goods'对应用于用于app下goods表的主键类型(其实这里是外键了,所以类型和goods表的主键相同)
字段名称
字段名称就是键值
type
mysql字段类型,int、varchar、text
枚举类型type=>array() 对应mysql的enum //desktop 高级搜索产生一个select选项可以进行选择
特有的类型
money 对应 decimal(20,3)//涉及到金额 dbeav的save会验证是否是money类型的数据
email 对应 varchar(255)//dbeav的save会验证是否是email类型的数据
bn 对应 varchar(255)//商品的货号 货品的货号 订单号等等
html 对应 text//商品详情 文章内容等
bool 对应 enum('true','false')//开关类型
time 对应 int(10) unsigned(无符号)//desktop的高级搜索绑定日历
cdate 对应 int(10) unsigned
intbool 对应 enum('0','1')//开关类型
region 对应 varchar(255)
password 对应 varchar(32) md5加密后的字符串
tinybool 对应 enum('Y','N')//开关类型
number 对应 mediumint unsigned//数量等类型
float 对应 float
gender 对应 enum('male','false')//性别
ipaddr 对应 varchar(20) //ip地址
serialize 对应 longtext//
last_modify 对应 int(10) unsigned //和time类型相似,可以理解为最后更新时间
table:table_name 将本app下的table_name这个表的主键作为关联关系
required
true false(mysql "not null")
default
pkey 是否主键
primary key()
extra
扩展值
extra=>'auto_increment' mysql auto_increment
extra=>'CHARACTER SET "utf8"' mysql CHARACTER SET "utf8"
index
索引 默认为空
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
[index_type]
ON tbl_name (index_col_name,...)
[index_type] index_col_name:
col_name [(length)] [ASC | DESC] index_type:
USING {BTREE | HASH | RTREE}
<?php
'index' => array (
'ind_prefix' => array( // 索引名称
'columns' => array( // 要创建索引的数据库字段名
0 => 'prefix',
),
'prefix' => '' // 索引的类型 UNIQUE|FULLTEXT|SPATIAL 如果为空 为一般的索引
'type' => '' // 指定索引算法 BTREE | HASH | RTREE
)
)
?>
ecos的dbschema的更多相关文章
- eCos中的线程与同步
http://blog.csdn.net/ooaven/article/details/6280018 先看一下eCos线程的创建.控制以及优先级的操作这三个方面的知识,主要是对它的实现方式及API做 ...
- eCos中断模型
http://blog.csdn.net/chychc/article/details/8313458 http://www.cnblogs.com/RandyQ/archive/2013/04/14 ...
- linux 和 ecos 内核线程创建/信号量/event等对比
ecos: int gx_thread_create (const char *thread_name, gx_thread_id *thread_id, void(*entry_func)(void ...
- eCos系统CPU负载测量
原文:http://ecos.sourceware.org/docs-latest/ref/services-cpuload.html 译文:http://blog.csdn.net/zoomdy/a ...
- Ecstore获取dbschema内容?
有时候在使用dbschema的时候,需要获取dbschema的结构.例如: 那么,我们可以这样写: 这样我就能获得 称呼 这个数组
- ecos编译redboot,vmware运行redboot,执行hello world(图形配置)
1- 下载源文件 :~/ecos$ ls -lrt total 80 drwxr-xr-x 7 XXXX XXXX 4096 Mar 27 2009 ecos-3.0 -rw-r--r-- 1 X ...
- 基于VMware的eCos环境编译redboot(脚本配置redboot)
基于VMware的ecos,redboot及hello world(1)安装请参照[[ecos学习2]wmware运行redboot[方法二]--图形实现配置 ] (2)修改内存布局文件:~/i386 ...
- 【ecos学习5】redboot 加载运行hello world
背景: 从主机 192.168.2.14 IP,下载bin文件hello到ecos. redboot>load -v -h 192.168.2.14 hello Using default pr ...
- 【ecos学习1】wmware运行redboot[方法一]--脚本实现配置
背景: 远程服务器Ubuntu生成软盘镜像,通过Mac下wmware运行. 1- 环境及版本: uname -a 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 ...
随机推荐
- DLL调试方法
1.已经做好的dll不能设置:你可以用AfxMessageBox把信息打印出来.2.哪个地方调用的函数 把DLL重新编译一次 在把DLL放到工程里 从新添加一下 然后在你工程调用DLL内容的地方设置断 ...
- 在 .NET 4 中使用托管可扩展性框架构建可组合的应用程序
https://msdn.microsoft.com/zh-cn/library/ff576068.aspx http://blogs.msdn.com/b/nblumhardt/archive/20 ...
- wpf中ListBox的选中项与ComboBox间的绑定
产品类: public class Product:NotificationObject { private int productID; public int ProductID { get { r ...
- [maven] 新建项目一直提示loading archetype list
Maven's JRE is running out of memory. Under Build > Build Tools > Maven > Importing, set &q ...
- redis 队列缓存 + mysql 批量入库 + php 离线整合
问题分析 思考:应用网站架构的衍化过程中,应用最新的框架和工具技术固然是最优选择:但是,如果能在现有的框架的基础上提出简单可依赖的解决方案,未尝不是一种提升自我的尝试. 解决: 问题一:要求日志最好入 ...
- 实测switch支持的参数类型
@Test public void testSwitch() { switch (2) { case 1: System.out.println("int型:" + 1); bre ...
- keyboardWillChangeFrameNotification 引发的思考 是的 思考了很久终于出结果
func keyboardWillChangeFrameNotification(note: NSNotification) { // TODO 添加键盘弹出的事件 let userinfo = no ...
- iOS 开发之照片框架详解之二 —— PhotoKit 详解(下)
本文链接:http://kayosite.com/ios-development-and-detail-of-photo-framework-part-three.html 这里接着前文<iOS ...
- HBase Coprocessor 剖析与编程实践(转载http://www.cnblogs.com/ventlam/archive/2012/10/30/2747024.html)
HBase Coprocessor 剖析与编程实践 1.起因(Why HBase Coprocessor) HBase作为列族数据库最经常被人诟病的特性包括:无法轻易建立“二级索引”,难以执行求和. ...
- POJ 1061 青蛙的约会(欧几里得扩展)
题意:已知青蛙1位置x,速度m,青蛙2位置y,速度n,纬线长度为l,求他们相遇时最少跳跃次数. 思路:设最小跳跃次数为k,则(x + k*m) - (y + k*n) = q*l:经过整理得到k*(n ...