数据统计思维导图和数据库设计为了满足大数据实现高效统计的需求,特设计了一套高性能统计思维导图和数据库设计文档。思维导图数据库表结构说明Yii数据库迁移文件文档说明点击查看文档说明需求脑图百度脑图数据库表结构说明百度脑图迁移文件/***{@inheritdoc}*/publicfunctionsafeUp(){$this->createTable('boss_static',['service_key'=>$this->char(32)->notNull()->comment('servicekey'),'expires_at'=>$this->integer()->notNull()->defaultValue(0)->unsigned()->comment('Validity:0permanent'),'name'=>$this->string(30)->notNull()->comment('服务名称'),'created_at'=>$this->integer()->notNull()->unsigned()->comment('创建时间'),'deleted_at'=>$this->integer()->notNull()->defaultValue(0)->unsigned()->comment('删除时间'),'static_count'=>$this->bigInteger(12)->notNull()->defaultValue(0)->unsigned()->comment('统计'),'select_count'=>$this->bigInteger(12)->notNull()->defaultValue(0)->unsigned()->comment('queries'),'status'=>$this->tinyInteger(1)->notNull()->defaultValue(0)->unsigned()->comment('status'),]);$this->addCommentOnTable('boss_static','服务申请表');$this->addPrimaryKey('primary_service_key','boss_static','service_key');$this->createIndex('idx_created_at','boss_static','created_at');$this->createIndex('idx_deleted_at','boss_static','deleted_at');$this->createTable('boss_static_project',['project_id'=>$this->bigPrimaryKey()->comment('统计项目id'),'name'=>$this->string(20)->notNull()->comment('项目名称'),'service_key'=>$this->char(32)->notNull()->comment('服务密钥'),'created_at'=>$this->integer()->notNull()->unsigned()->comment('created_at''),'deleted_at'=>$this->integer()->notNull()->defaultValue(0)->unsigned()->comment('删除时间'),'static_count'=>$this->bigInteger(12)->notNull()->defaultValue(0)->unsigned()->comment('统计'),'select_count'=>$this->bigInteger(12)->notNull()->defaultValue(0)->unsigned()->comment('queries'),]);$this->addCommentOnTable('boss_static_project','统计项目表');$this->createIndex('idx_service_key','boss_static_project','service_key');$this->createIndex('idx_created_at','boss_static_project','created_at');$this->createIndex('idx_deleted_at','boss_static_project','deleted_at');$this->createTable('boss_static_condition',['condition_id'=>$this->bigPrimaryKey()->comment('conditionid'),'service_key'=>$this->char(32)->notNull()->comment('服务密钥'),'project_id'=>$this->bigInteger()->notNull()->unsigned()->comment('统计项id'),'key'=>$this->string(30)->notNull()->comment('条目字符串'),'field_type'=>$this->tinyInteger()->notNull()->comment('字符串类类型'),]);$this->addCommentOnTable('boss_static_condition','雷达统计图表');$this->createIndex('idx_service_key','boss_static_condition','service_key');$this->createIndex('idx_project_id','boss_static_condition','project_id');$this->createIndex('idx_key','boss_static_condition','key');$this->createIndex('idx_key_field_type','boss_static_condition',['key','field_type']);$this->createTable('boss_static_condition_tinyint',['condition_id'=>$this->bigInteger()->notNull()->unsigned()->comment('条件id'),'value'=>$this->tinyInteger()->notNull()->unsigned()->comment('值'),]);$this->addCommentOnTable('boss_static_condition_tinyint','短整形');$this->addPrimaryKey('primary_condition_id_value','boss_static_condition_tinyint',['condition_id','value']);$this->createTable('boss_static_condition_bigint',['condition_id'=>$this->bigInteger()->notNull()->unsigned()->comment('条件id'),'value'=>$this->bigInteger(11)->notNull()->unsigned()->comment('值'),]);$this->addCommentOnTable('boss_static_condition_bigint','长整形');$this->addPrimaryKey('primary_condition_id_value','boss_static_condition_bigint',['condition_id','value']);$this->createTable('boss_static_condition_min_varchar',['condition_id'=>$this->bigInteger()->notNull()->unsigned()->comment('条件id'),'value'=>$this->string(50)->notNull()->comment('值'),]);$this->addCommentOnTable('boss_static_condition_min_varchar','短字符串');$this->addPrimaryKey('primary_condition_id_value','boss_static_condition_min_varchar',['condition_id','value']);$this->createTable('boss_static_condition_max_varchar',['condition_id'=>$this->bigInteger()->notNull()->unsigned()->comment('conditionid'),'value'=>$this->string(200)->notNull()->comment('value'),]);$this->addCommentOnTable('boss_static_condition_max_varchar','longstring');$this->addPrimaryKey('primary_condition_id_value','boss_static_condition_max_varchar',['condition_id','value']);$this->createTable('boss_static_hour',['id'=>$this->bigPrimaryKey()->comment('小时统计主键'),'service_key'=>$this->char(32)->notNull()->comment('servicekey'),'created_at'=>$this->integer()->notNull()->unsigned()->comment('首次统计创建时间'),'last_update'=>$this->integer()->notNull()->unsigned()->comment('最新更新统计时间'),'date'=>$this->date()->notNull()->comment('今天的日期'),'hour'=>$this->tinyInteger(2)->notNull()->unsigned()->comment('统计时间'),'project_id'=>$this->bigInteger()->notNull()->unsigned()->comment('统计项目'),'value'=>$this->bigInteger(18)->notNull()->unsigned()->defaultValue(0)->comment('统计'),]);$this->addCommentOnTable('boss_static_hour','雷达统计小时表');$this->createIndex('idx_service_key','boss_static_hour','service_key');$this->createIndex('idx_date','boss_static_hour',['date']);$this->createIndex('idx_date_hour','boss_static_hour',['date','hour']);$this->createIndex('idx_project_id','boss_static_hour',['project_id']);$this->createTable('boss_static_date',['id'=>$this->bigPrimaryKey()->comment('日期统计主键'),'service_key'=>$this->char(32)->notNull()->comment('服务密钥'),'created_at'=>$this->integer()->notNull()->unsigned()->comment('第一次统计创建时间'),'last_update'=>$this->integer()->notNull()->unsigned()->comment('最后更新统计时间'),'date'=>$this->date()->notNull()->comment('日期'),'project_id'=>$this->bigInteger()->notNull()->unsigned()->comment('统计项目'),'value'=>$this->bigInteger(18)->notNull()->unsigned()->defaultValue(0)->comment('统计值'),]);$this->addCommentOnTable('boss_static_date','雷达统计日期表');$this->createIndex('idx_service_key','boss_static_date','service_key');$this->createIndex('idx_date','boss_static_date',['date']);$this->createIndex('idx_project_id','boss_static_date',['project_id']);$this->createTable('boss_static_foreign',['foreign_id'=>$this->bigInteger()->comment('associationid'),'foreign_type'=>$this->tinyInteger()->notNull()->unsigned()->comment('associationtype'),'foreign_name'=>$this->string(20)->notNull()->comment('关联名称'),'created_at'=>$this->integer()->notNull()->comment('关联时间'),'value'=>$this->bigInteger(18)->notNull()->unsigned()->defaultValue(0)->comment('统计值'),]);$this->addCommentOnTable('boss_static_foreign','雷达统计关联表');$this->addPrimaryKey('primary_foreign_id_foreign_type_foreign_name','boss_static_foreign',['foreign_id','foreign_type','foreign_name']);$this->createIndex('idx_created_at','boss_static_foreign','created_at');$this->createTable('boss_static_cache',['sql_md5'=>$this->char(32)->notNull()->comment('sqlstatementmd5'),'cache_version'=>$this->string(30)->非空()->comment('存档版本'),'data'=>$this->getDb()->getSchema()->createColumnSchemaBuilder('longtext')->comment('存档结果'),]);$this->addCommentOnTable('boss_static_cache','统计存储');$this->addPrimaryKey('primary_sql_md5_cache_version','boss_static_cache',['sql_md5','cache_version']);}/***{@inheritdoc}*/publicfunctionsafeDown(){$this->dropTable('boss_static');$this->dropTable('boss_static_project');$this->dropTable('boss_static_condition');$this->dropTable('boss_static_condition_tinyint');$this->dropTable('boss_static_condition_bigint');$this->dropTable('boss_static_condition_min_varchar');$this->dropTable('boss_static_condition_max_varchar');$this->dropTable('boss_static_hour');$this->dropTable('boss_static_date');$this->dropTable('boss_static_foreign');$this->dropTable('boss_static_cache');}
