美文网首页
人脸系统数据库设计

人脸系统数据库设计

作者: 奇门遁甲 | 来源:发表于2016-04-13 17:42 被阅读0次

1. 简介

本文档全面系统的简介描述了人脸系统的数据库结构与设计。

2. 设计约束

人脸系统基于分布式数据OPAQ和业务数据库MYSQL实现。因为人脸抓拍日志(capture_log)数据量非常大,设计上存放在OPAQ,<font color=red>布控报警(alarm)后续要存入到OPAQ中</font>,其余数据存在MySQL。

  • 人脸默认是Hibernate ORM框架,数据库表命名规则为全部小写,例如数据库中的capture_log对应Hibernate中的实体类为CaptureLog。
  • 数据库编码一律使用UTF-8编码
public class CustomMysqlDialect extends MySQL5InnoDBDialect
{
    public String getTableTypeString()
    {
        return " ENGINE=InnoDB DEFAULT CHARSET=utf8";
    }
}
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.dialect=com.netposa.face.config.CustomMysqlDialect

3. 数据字典

3.1 用户权限

一个用户可以对应多个角色,一个角色可以对应多个用户。多对多关系。
用于做认证和权限控制

用户表(s_user

用户表保存用户的登录信息

字段 类型 备注
id int(11) NOT NULL AUTO_INCREMENT 用户唯一ID,主键
create_date date DEFAULT NULL 创建日期
idcard varchar(20) NOT NUL 身份证
name varchar(20) NOT NULL 用户名
password varchar(64) NOT NULL MD5码后的密码
realname varchar(20) DEFAULT NULL 真实姓名
sex varchar(20) DEFAULT NULL 性别
status tinyint(1) DEFAULT NULL 状态,0表示可用, 1表示禁用

<font color=red>原来的status设计为status int(11) DEFAULT NULL</font>

角色表(s_role

用来关联用户表,确定每个用户的关系

字段 类型 备注
id int(11) NOT NULL AUTO_INCREMENT 角色唯一ID,主键
name varchar(20) DEFAULT NULL 组名称
description varchar(100) DEFAULT NULL 组描述

<font color=red>将现在的uid删除,没有意义,实际中组也不会特别多,没必要再弄个uuid,删除,目前有很多需求,不想某个人使用某个静态库,因为涉及一些敏感信息</font>

用户角色表(user_role)

字段 类型 备注
id int(11) NOT NULL AUTO_INCREMENT 唯一ID,主键
userid int(20) NOT NULL 用户的唯一ID
roleid int(20) NOT NULL 用户所属的组信息

资源表(resource)

字段 类型 备注
id int(11) NOT NULL AUTO_INCREMENT 资源唯一ID,主键
name varchar(20) DEFAULT NULL 资源名称

资源角色表(resource_role)

字段 类型 备注
id int(11) NOT NULL AUTO_INCREMENT 资源唯一ID,主键
resouceid varchar(20) DEFAULT NULL 资源ID
roleid int(20) NOT NULL 资源所属的角色

3.2 配置管理

人脸库(lib)

库分为静态库和布控库,布控库因为人员不是很多,所有数据全部存放在一张表中
静态库分表存(每个静态库分两张表,一个人员信息表,一个人员图片表,一个人最多有五张图片)

字段 类型 备注
id bigint(20) NOT NULL AUTO_INCREMENT 人脸唯一ID,主键
createtime datetime DEFAULT NULL 库创建时间
creator varchar(255) DEFAULT NULL 库的创建者
memo varchar(512) DEFAULT NULL 库的备注信息
subpictablename varchar(255) DEFAULT 静态库的图片表名称
subtablename varchar(64) DEFAULT NULL 静态库的人员信息表名称
threshold int(11) DEFAULT NULL 阈值1-100
type varchar(255) DEFAULT NULL 库的类型
库的类型为下面两种类型
public enum  LibType
{
    GENERAL,   //普通库
    LARGE      //静态大库
}

人员信息(person)

字段 类型 备注
objectid bigint(20) NOT NULL AUTO_INCREMENT 人脸唯一ID,主键
birth date DEFAULT NULL 生日
createtime datetime NOT NULL 创建时间
idcard varchar(30) DEFAULT NULL 身份证
memo varchar(30) DEFAULT NULL 备注
name varchar(64) DEFAULT NULL 姓名
sex varchar(1) DEFAULT NULL 性别
threshold int(2) DEFAULT NULL 阈值0-100,目前未使用,预留
lib bigint(20) 所在的库ID
credentialstype varchar(2) DEFAULT NULL 证件类型
degree varchar(2) DEFAULT NULL 文化程度
homeaddress varchar(255) DEFAULT NULL 家庭住址
homeplace varchar(255) DEFAULT NULL 出生地
householdreg varchar(255) DEFAULT 籍贯
identity varchar(64) DEFAULT NULL 身份职衔
militaryservice varchar(1) DEFAULT NULL 服兵役情况
nation varchar(2) DEFAULT NULL 民族
nationality varchar(64) DEFAULT NULL 国籍
oldname varchar(64) DEFAULT NULL 曾用名
organization varchar(64) DEFAULT NULL 机构(所在处室或分管工作)
stature varchar(64) DEFAULT NULL 身高

人员图片信息(person_pic)

字段 类型 备注
picid bigint(20) NOT NULL AUTO_INCREMENT 图片唯一ID,键
filepath varchar(255) DEFAULT NULL 文件路径
objectid bigint(20) NOT NULL 对象ID

设备信息 (device)

字段 类型 备注
id bigint(20) NOT NULL AUTO_INCREMENT 设备唯一ID,主键
ip varchar(64) DEFAULT NULL 设备IP地址
name varchar(255) DEFAULT NULL 设备名称
outerip varchar(64) DEFAULT NULL 外网的IP
outerport int(6) DEFAULT NULL 外网的端口
password varchar(64) DEFAULT NULL 密码
port int(6) DEFAULT NULL 摄像机端口
username varchar(64) DEFAULT NULL 摄像机用户名
path varchar(255) DEFAULT NULL IOD服务路径,默认:/iod/system/device/devices
type bigint(20) NOT NULL AUTO_INCREMENT 设备唯类型,具体值见下
public enum DeviceType {
    /**
     * PVG设备
     */
    PVG,

    /**
     * IoD设备
     */
    IoD
}

<font color=red>目前设备信息包含PVG和IoD信息,表名叫pvg,建议修改成device</font>

摄像机表 (camera)

字段 类型 备注
id bigint(20) NOT NULL AUTO_INCREMENT 摄像机一ID,主键
host varchar(64) DEFAULT NULL 摄像机IP地址
name varchar(64) DEFAULT NULL 摄像机av通道名称
path varchar(64) DEFAULT NULL 摄像机分层,直接从PVG设备同步过来的字段
title varchar(64) DEFAULT NULL 标题,摄像机显示的名称
deviceid bigint(20) DEFAULT NULL 摄像机对应上层的设备(PVG、IoD)的ID
iod_id varchar(50) DEFAULT NULL Iod对象的ID
latitude double(20,8) DEFAULT NULL 摄像机的纬度
longitude double(20,8) DEFAULT NULL 摄像机的经度

<font color=red>目前摄像机表存在很多无用的字段,上表已经是精简过的,其它字段都可以删除不用</font>

任务表 (task)

字段 类型 备注
id bigint(20) NOT NULL AUTO_INCREMENT 摄像机一ID,主键
creater varchar(255) DEFAULT NULL 任务创建者
createtime datetime DEFAULT NULL 任务创建时间
starttime varchar(255) DEFAULT NULL 任务开始时间
endtime datetime DEFAULT NULL 任务结束时间
errcode varchar(255) NOT NULL PCC返回的pccJobReport.errorCode
jobkey bigint(20) DEFAULT NULL 任务提交后的jobkey
jobstate varchar(255) DEFAULT NULL PCC返回的jobstate
memo varchar(255) DEFAULT NULL 任务说明
name varchar(255) DEFAULT NULL 任务名称
causes varchar(255) DEFAULT NULL PCC返回的原因状态
committime datetime DEFAULT NULL, PCC任务提交时间
costedtime datetime DEFAULT NULL PCC整个任务花费的时间
processedtime varchar(255) DEFAULT NULL PCC实际算法花费的时间

任务额外配置表 (task_additional_property)

该表主要是在创建布控任务对摄像机进行配置

字段 类型 备注
id bigint(20) NOT NULL AUTO_INCREMENT 关联关系唯一ID
bottom int(11) DEFAULT NULL 摄像机处理区域bottom
left int(11) DEFAULT NULL 摄像机处理区域left
right int(11) DEFAULT NULL 摄像机处理区域right
top int(11) DEFAULT NULL 摄像机处理区域top
camera bigint(20) DEFAULT NULL 摄像机ID
taskid bigint(20) DEFAULT NULL 任务ID
maxsize bigint(11) DEFAULT NULL 摄像机最大人脸库
minsize bigint(11) DEFAULT NULL 摄像机最小人脸框

3.3 布防布控

告警表 (alarm)

字段 类型 备注
id bigint(20) NOT NULL AUTO_INCREMENT 告警ID
alarm_person_image varchar(255) DEFAULT NULL 告警图片源
alarm_panorama_image varchar(255) DEFAULT NULL 告警全景图片
alarm_time datetime DEFAULT NULL 告警时间
camera_id bigint(20) DEFAULT NULL 摄像机ID
target varchar(255) DEFAULT NULL 比重库的人员json
status int(1) DEFAULT NULL 处理的状态见下
public enum AlarmStatusType {
  ALARM_UNTREATED("未处理", 0),
  ALARM_VALID("有效", 1),
  ALARM_INVALID("无效", 2),
  ALARM_UNKNOWEN("未知", 3);
}
{
   ["libid":1,"objectid":12, "picid":216, "score":85]
}

<font color=red>目前保存的告警表设计冗余度太高,重复太多,并且分别在两张表中,建议重构</font>

相关文章

  • 人脸系统数据库设计

    1. 简介 本文档全面系统的简介描述了人脸系统的数据库结构与设计。 2. 设计约束 人脸系统基于分布式数据OPAQ...

  • 2018-04-19

    任务2.5 系统数据库设计 什么是数据库设计 数据库设计,是指根据用户需求,在某一具体的数据库管理系统上,设计数据...

  • 2019-07-12 11、考勤系统总结报告

    一、打卡考勤系统需求分析报告 打卡考勤系统需求分析报告 二、考勤系统数据库设计 考勤系统数据库设计 三、考勤系统界...

  • 数据库设计相关

    一、数据库设计 数据库设计就是根据业务系统的具体需求,结合我们所选用的DBMS(数据库管理系统),为这个业务系统构...

  • 数据库设计

    数据库设计 简介 简单来说,数据库设计就是根据业务系统的具体需要,结合我们所选的数据库管理系统,为这个业务系统构造...

  • 任务2.4系统数据库设计

    任务2.4系统数据库设计 1.抽象数据表 数据库设计,是指根据用户需求,在某一具体的数据库管理系统上,设计数据库的...

  • 2020-06-09

    云卡通人脸识别系统含盖:动态人脸识别门禁管理系统、动态人脸识别消费系统、动态人脸识别考勤系统。其中动态人脸识别消费...

  • 数据库 权限设计

    数据库 权限设计 -系统权限管理设计-通用权限管理设计 之 数据库结构设计 权限 用户 角色 组 用户表

  • 七、数据库应用设计与开发实例

    以数据库的生命周期为演化主线,数据库应用软件的设计与开发过程可由需求分析、系统功能和数据库的设计、系统功能与数据库...

  • 【人脸识别实战一】系统架构设计

    1、前言 《人脸识别实战》系列文章将讲述一个人脸识别系统的设计与实现过程。本文是系列文章的开篇,主要描述系统的整体...

网友评论

      本文标题:人脸系统数据库设计

      本文链接:https://www.haomeiwen.com/subject/lkxglttx.html