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的更多相关文章

  1. eCos中的线程与同步

    http://blog.csdn.net/ooaven/article/details/6280018 先看一下eCos线程的创建.控制以及优先级的操作这三个方面的知识,主要是对它的实现方式及API做 ...

  2. eCos中断模型

    http://blog.csdn.net/chychc/article/details/8313458 http://www.cnblogs.com/RandyQ/archive/2013/04/14 ...

  3. linux 和 ecos 内核线程创建/信号量/event等对比

    ecos: int gx_thread_create (const char *thread_name, gx_thread_id *thread_id, void(*entry_func)(void ...

  4. eCos系统CPU负载测量

    原文:http://ecos.sourceware.org/docs-latest/ref/services-cpuload.html 译文:http://blog.csdn.net/zoomdy/a ...

  5. Ecstore获取dbschema内容?

    有时候在使用dbschema的时候,需要获取dbschema的结构.例如: 那么,我们可以这样写: 这样我就能获得 称呼 这个数组    

  6. 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 ...

  7. 基于VMware的eCos环境编译redboot(脚本配置redboot)

    基于VMware的ecos,redboot及hello world(1)安装请参照[[ecos学习2]wmware运行redboot[方法二]--图形实现配置 ] (2)修改内存布局文件:~/i386 ...

  8. 【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 ...

  9. 【ecos学习1】wmware运行redboot[方法一]--脚本实现配置

    背景: 远程服务器Ubuntu生成软盘镜像,通过Mac下wmware运行. 1- 环境及版本: uname -a 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 ...

随机推荐

  1. mvc 母版页、用户自定义控件

    母版页(Master) 1.母版页是与Controller无关的,母版页只是一个View文件,而没有任何Controller与之相对应. 2.其实在ASP.NET MVC中View的aspx与母版页并 ...

  2. 认识cookie与session的区别与应用

    通常我们所说的浏览器自动保存密码,下次不用登陆,网页换皮肤,用户引导,提示一次就不再出现的内容,大部分通过cookie或者session来实现的,在这次制作用户引导中,本人就用到了cookie的内容, ...

  3. MySQL数据库分区修改【原创】

    之前有个表分区添加时s201607添加成s201617,所以在查询7月份数据时报错 错误的 alter table statistics_ticket add partition (partition ...

  4. python 邮件报警

    为了以后方便使用邮件报警 我这边直接写入一推报警模板 方便以后使用 加入模块 import smtplib from email.mime.text import MIMEText from emai ...

  5. Androidndk开发打包时我们应该如何注意平台的兼容(x86,arm,arm-v7a)

    很多朋友在开发Android JNI的的时候,会遇到findlibrary returned null的错误,因为某种原因,so没有打包到apk中.下面浅析下引起该错误的原因以及平台兼容性问题. 一. ...

  6. Number Sequence HDU 1711 KMP 模板

    题目大意:两个数组匹配,求子串首次出现的位置. 题目思路:数组长度,比较大,朴素算法的时间复杂度为 m*n超时.KMP的时间复杂度为m+n可行. #include<iostream> #i ...

  7. 在Javascript中使用protobuf与c++进行通信

    环境:Win7_64旗舰版,VS2013 最近在研究Webkit,已经编译成功,接下来就是Javascript与c++如何传输数据,立刻就想到了protobuf,但是谷歌不支持Javascript,百 ...

  8. C++调用C#之C# COM控件

    C#做界面真的是比C++方便多了,所以尝试了一下,使用C++做核心功能(例如绘图),然后用C#来做节目(例如对话框),考虑到以后可能不能使用.net,使用DLL做一个隔离层,隔离C++和C#,方便以后 ...

  9. android:contentDescription的作用是什么

    在写Android的XML布局文件时,在ImageView或ImageButton中经常会碰到一个提示: Missing contentDescription attribute on image. ...

  10. mysql笔记4之数据操作

    1修改数据 插入:insert into stu(id,name,age,addr) values(2,"李四",44,"重庆"); 2修改某一列 updata ...