• 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
        )
    )
    ?>
  • 相关阅读:
    haproxy报错解决
    haproxy安装
    gitlab配置webhook报错解决
    git_push报错
    DNS配置
    centos7 选定默认启动内核,及删除无用内核
    ansible安装、配置ssh、hosts、测试连接
    公司手机打卡app时间和百度时间差30秒解决
    所有编辑语言的共性内容元素
    php使用正则函数使用详解
  • 原文地址:https://www.cnblogs.com/motian06/p/3450221.html
Copyright © 2020-2023  润新知