华南虎管理系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

146 lines
7.9 KiB

<?php
// 作用:初始化数据库
// $demo = new loadDatabase($host, $user, $passwd, $database);
// $demo->init();
class loadDatabase {
private $loadSQL; // 初始化SQL语句
private $mysqlServer; // MySQL数据库地址
private $mysqlUser; // MySQL用户名
private $mysqlPasswd; // MySQL用户密码
private $databaseName; // 目标数据库名称
private function loadSqlString() { // 载入SQL建表语句
// 人员信息表
$this->loadSQL['_user'] = "DROP TABLE IF EXISTS `user`;";
$this->loadSQL['user'] = "CREATE TABLE `user` (
`id` int NOT NULL COMMENT '人员唯一ID',
`account` varchar(255) NOT NULL COMMENT '账户名称',
`passwd` varchar(255) NOT NULL COMMENT '密码哈希值',
`group_id` int NOT NULL COMMENT '人员所属群组',
`status` int NOT NULL COMMENT '用户当前状态',
`is_caption` int NOT NULL COMMENT '是否为队长',
`data` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '包括名字、邮箱、电话号码等(数组)',
PRIMARY KEY (`id`),
UNIQUE KEY `account` (`account`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;";
// 群组信息表
$this->loadSQL['_group'] = "DROP TABLE IF EXISTS `group`;";
$this->loadSQL['group'] = "CREATE TABLE `group` (
`id` int NOT NULL COMMENT '群组唯一ID',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '群组名称',
`remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '备注信息',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;";
// A类物品种类记录表
$this->loadSQL['_a_kind'] = "DROP TABLE IF EXISTS `a_kind`;";
$this->loadSQL['a_kind'] = "CREATE TABLE `a_kind` (
`id` int NOT NULL COMMENT '物品种类唯一ID',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '物品名称',
`owner` int NOT NULL COMMENT '所属群组',
`remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '备注信息',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;";
// A类物品记录表
$this->loadSQL['_a_status'] = "DROP TABLE IF EXISTS `a_status`;";
$this->loadSQL['a_status'] = "CREATE TABLE `a_status` (
`id` int NOT NULL COMMENT '物品唯一ID',
`kind_id` int NOT NULL COMMENT '所属种类ID',
`time` datetime NOT NULL COMMENT '购入时间',
`purchaser` int NOT NULL COMMENT '购入人员',
`principal` int NOT NULL COMMENT '物品负责人',
`status` int NOT NULL COMMENT '物品当前状态',
`is_approve` int NOT NULL COMMENT '物品借出是否需要审批',
`remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '备注信息',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;";
// A类物品借出记录表
$this->loadSQL['_a_lend'] = "DROP TABLE IF EXISTS `a_lend`;";
$this->loadSQL['a_lend'] = "CREATE TABLE `a_lend` (
`id` int NOT NULL COMMENT '借出记录的唯一ID',
`time` datetime NOT NULL COMMENT '借出或移交时间',
`lender` int NOT NULL COMMENT '借出或移交后物品所在人员',
`approver` int NOT NULL COMMENT '审批人员',
`method` int NOT NULL COMMENT '物品借出方式',
`remark` text CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT '备注信息',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;";
// A类物品审批状态表
$this->loadSQL['_a_approve'] = "DROP TABLE IF EXISTS `a_approve`;";
$this->loadSQL['a_approve'] = "CREATE TABLE `a_approve` (
`id` int NOT NULL COMMENT '请求借出或移交的物品ID',
`submitter` int NOT NULL COMMENT '申请审批的人员',
`time` datetime NOT NULL COMMENT '申请提交的时间',
`approver` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '标记请求目标人员(数组)',
`ignore` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '标记目标人员忽略请求(数组)',
`remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '备注信息',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;";
// B类耗材状态表
$this->loadSQL['_b_status'] = "DROP TABLE IF EXISTS `b_status`;";
$this->loadSQL['b_status'] = "CREATE TABLE `b_status` (
`id` int NOT NULL COMMENT '耗材唯一ID',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '耗材名称',
`num` int NOT NULL COMMENT '耗材数量',
`owner` int NOT NULL COMMENT '所属群组',
`principal` int NOT NULL COMMENT '耗材负责人',
`is_approve` int NOT NULL COMMENT '物品借出是否需要审批',
`remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '备注信息',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;";
// B类耗材审批状态表
$this->loadSQL['_b_approve'] = "DROP TABLE IF EXISTS `b_approve`;";
$this->loadSQL['b_approve'] = "CREATE TABLE `b_approve` (
`id` int NOT NULL COMMENT '请求借出的物品ID',
`submitter` int NOT NULL COMMENT '申请审批的人员',
`time` datetime NOT NULL COMMENT '申请提交的时间',
`approver` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '标记请求目标人员(数组)',
`ignore` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '标记目标人员忽略请求(数组)',
`remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '备注信息',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;";
// C类时耗品状态表
$this->loadSQL['_c_status'] = "DROP TABLE IF EXISTS `c_status`;";
$this->loadSQL['c_status'] = "CREATE TABLE `c_status` (
`id` int NOT NULL COMMENT '时耗品唯一ID',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '时耗品名称',
`owner` int NOT NULL COMMENT '时耗品所属群组',
`principal` int NOT NULL COMMENT '时耗品负责人',
`end_time` datetime NOT NULL COMMENT '时耗品到期时间',
`remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '备注信息',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;";
}
public function __construct($mysqlServer, $mysqlUser, $mysqlPasswd, $databaseName) { // 构造函数
$this->mysqlServer = $mysqlServer;
$this->mysqlUser = $mysqlUser;
$this->mysqlPasswd = $mysqlPasswd;
$this->databaseName = $databaseName;
$this->loadSqlString();
}
public function init() { // 执行数据库初始化
$conn = new mysqli($this->mysqlServer, $this->mysqlUser, $this->mysqlPasswd, $this->databaseName);
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
foreach ($this->loadSQL as $sql) { // 遍历初始化SQL语句
if (!$conn->query($sql)) {
die("执行错误: " . $conn->error);
}
}
$conn->close();
}
}
?>