数据库 - Model 前置说明
官方开源项目 抓取代理IP

什么是对象建模

在使用UML组件之前,我们要先对需要用到缓存的数据表进行结构建模,可以理解成Mysql的创建数据表。

注意事项

1、所有UML模型均需要继承\x\redis\UML类(注意大小写区分)。

2、所有UML模型不限制存放目录,但建议统一存放在\box\uml\\app\uml\目录下。

3、所有UML模型的类名就是需要缓存的数据表名。

4、所有UML模型的类名建均建议首字母大写。

UML创建规则

例如,现在需要创建一个对应user表的UML模型。

namespace app\uml;
use x\redis\UML;

class User extends UML
{
    /**
     * 使用的Redis连接池标识
    */
    protected $driver = 'default';
    /**
     * 使用哪个Redis表存储
    */
    protected $database = 12;
    /**
     * 是否开启回写记录
    */
    protected $timer = false;
    /**
     * 主键字段
    */
    protected $primary = 'id';
    /**
     * 建模必传对象
    */
    protected $field_rule = [
        'id',
        'status',
        'phone',
        'region_id',
        'lng',
        'lat',
        'create_time',
    ];
    /**
     * 普通查询规则
    */
    protected $query_rule = [
        'id' => ['equal'], // 等于查询
        'status' => ['equal'], // 等于查询
        'phone' => ['equal'], // 等于查询
        'region_id' => ['equal'], // 等于查询
        'create_time' => ['range'], // 日期查询
    ]; 
    /**
     * geo配置规则
    */
    protected $geo_rule = [
        'longitude' => 'lng', // 经度
        'latitude' => 'lat', // 纬度
    ];
}

其中$primary$field_rule都是必须设置的。

$timer设置为true则表示开启更新标记,可用于查询更新记录回写到Mysql中,若不需要回写更新,使用默认false即可。

$query_rule为查询规则,若不设置该属性,则不能在where()中进行条件查询,规则仅支持equalrange,表示等于范围查询。

$geo_rule表示是否使用Redis的geo地理位置管理库,longitudelatitude的值为需要存储进去对应经纬度的字段名,若不需要开启,将其改成下面的数据结构即可:

/**
 * geo配置规则
*/
protected $geo_rule = [];

默认不启用。

SW-X

企业级 - 高性能 PHP 框架

最后更新:2年前 . 作者-小黄牛

本篇目录