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. SharePoint 2010 Modal Dialog

    SharePoint 2010 Modal Dialog Tweet   Modal dialog play very important role to improve the user exper ...

  2. R语言笔记5--读数据

    1.读文本文件数据 (1)先设置工作目录,把文本文件放于该目录下 备注:在记事本里写完数据后,按一下回车,负责在R语言中出现错误 (2)读剪贴板 文本或EXCEL的数据均可通过剪贴板操作 (3)读ex ...

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

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

  4. AIR使用文件对象操作文件和目录

    文件对象是啥?文件对象(File对象)是在文件系统中指向文件或目录的指针.由于安全原因,只在AIR中可用. 文件对象能做啥? 获取特定目录,包括用户目录.用户文档目录.该应用程序启动的目录和程序目录 ...

  5. C++ 中Hello World的一种写法

    /*C++ Hello World**/#include <stdio.h>#include <iostream>int main(){    printf("Hel ...

  6. [转]phpcms 判断用户登录代码

    <!-- 用户登录开始 --> <?php //读取用户信息 $ypzy_userid = param::get_cookie('_userid'); if(!empty($ypzy ...

  7. [转]c++ new带括号和不带括号

    ref:http://m.blog.csdn.net/blog/u012745772/42420443 在new对象的时候有加上(),有不加(),不知道这个到底是什么区别?比如:CBase *base ...

  8. split和join函数的比较

    关于split和join方法 处理对象字符串.split拆分字符串,join连接字符串 string.join(sep): 以string作为分隔符,将seq中的所有元素(字符串表示)合并成一个新的字 ...

  9. 在WIN7/8下把XP装入VHD (下)

    系统平台:win8.1,安装在C盘 操作目的:在win8.1下装一个VHD  XP. 操作方法: 在http://www.cnblogs.com/mahocon/p/5212914.html里贴了一个 ...

  10. [转]Android 导入v7包常见错误,以及项目引用v7包错误解决

    android下v4    v7   v21等包是android系统的扩展支持包,就想windows的系统补丁一个道理. android的扩展包主要是用来兼容低版本的,比如android3.0以后出现 ...