-- 用户主表(共用属性) DROP TABLE IF EXISTS `sys_user`; CREATE TABLE `sys_user` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户id', `username` varchar(30) NOT NULL COMMENT '账号', `password` varchar(100) DEFAULT '' COMMENT '密码', `nickname` varchar(30) NOT NULL COMMENT '昵称', `avatar` varchar(100) DEFAULT '' COMMENT '头像地址', `status` int DEFAULT 0 COMMENT '状态(0正常 1停用 2待审核)', `role` varchar(10) NOT NULL COMMENT '角色(1超级管理员 2普通用户)', `creator` bigint DEFAULT NULL COMMENT '创建者id', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `updater` bigint DEFAULT NULL COMMENT '更新者id', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `deleted` tinyint DEFAULT 0 COMMENT '删除标识(0未删 1已删)', PRIMARY KEY (`id`), UNIQUE KEY `idx_sys_user_username` (`username`) ) COMMENT='用户主表'; -- 超级管理员 admin 密码:123456 INSERT INTO `sys_user` (`username`, `password`, `nickname`, `avatar`, `status`, `role`, `creator`, `create_time`, `updater`, `update_time`, `remark`, `deleted`) VALUES ('admin', '$2a$10$sSTvaDj1QtrEIgEglkumguRT88m0WRs61gWw7Rgm/gpP6/eZ4ffwG', '超级管理员', '', 0, '1', NULL, NOW(), NULL, NOW(), '系统默认超级管理员', 0); -- 普通用户(游客) DROP TABLE IF EXISTS `tourist`; CREATE TABLE `tourist` ( `id` bigint NOT NULL COMMENT '用户id(与sys_user.id一致)', `real_name` varchar(30) DEFAULT NULL COMMENT '真实姓名', `id_card` varchar(18) DEFAULT NULL COMMENT '身份证号', `phone` varchar(11) DEFAULT NULL COMMENT '手机号', `email` varchar(50) DEFAULT NULL COMMENT '邮箱', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`), UNIQUE KEY `idx_sys_user_normal_phone` (`phone`), UNIQUE KEY `idx_sys_user_normal_email` (`email`) ) COMMENT='普通用户子表' -- 轮播图表 DROP TABLE IF EXISTS `carousel`; CREATE TABLE `carousel` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '轮播图id', `title` varchar(50) NOT NULL COMMENT '标题', `image_url` varchar(255) NOT NULL COMMENT '图片地址', `link` varchar(255) DEFAULT NULL COMMENT '跳转链接', `sort` int DEFAULT 0 COMMENT '排序序号', `status` tinyint DEFAULT 1 COMMENT '状态(0隐藏 1显示)', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`), KEY `idx_carousel_status` (`status`) ) COMMENT='轮播图'; -- 博物馆简介表 DROP TABLE IF EXISTS `museum_intro`; CREATE TABLE `museum_intro` ( `museum_name` varchar(100) NOT NULL COMMENT '博物馆名称(主键)', `content` text NOT NULL COMMENT '内容', `logo_url` varchar(255) DEFAULT NULL COMMENT 'Logo地址', `address` varchar(100) DEFAULT NULL COMMENT '地址', `phone` varchar(20) DEFAULT NULL COMMENT '联系电话', `open_time` time DEFAULT NULL COMMENT '营业开始时间', `close_time` time DEFAULT NULL COMMENT '营业结束时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `updater` bigint DEFAULT NULL COMMENT '更新者id', PRIMARY KEY (`museum_name`) ) COMMENT='博物馆简介'; INSERT INTO `museum_intro` ( `museum_name`, `content`, `logo_url`, `address`, `phone`, `open_time`, `close_time`, `update_time`, `updater` ) VALUES ( '邺城博物馆', '邺城博物馆位于河北省邺城遗址保护区,致力于系统展示东魏、北齐时期的城市文明与考古成果。馆内设基本陈列、专题展厅与数字互动空间,重点呈现佛教造像、石刻艺术、陶瓷器与城址考古发掘成果,并提供文物保护科普、研学课程与公众教育服务。', '/api/files/get?fileName=museum/logo/yecity.png', '河北省临漳县邺城遗址博物馆', '0310-8888888', '09:00:00', '17:30:00', NOW(), 1 ); -- 藏品分类表 DROP TABLE IF EXISTS `item_category`; CREATE TABLE `item_category` ( `id` bigint NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '分类ID', `name` varchar(50) NOT NULL COMMENT '分类名称', `creator` bigint NULL COMMENT '创建者', `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` bigint NULL COMMENT '更新者', `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) NULL COMMENT '备注' ) COMMENT = '藏品分类'; -- 藏品主表 DROP TABLE IF EXISTS `relic`; CREATE TABLE `relic` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '藏品id', `name` varchar(100) NOT NULL COMMENT '名称', `category_id` bigint NOT NULL COMMENT '分类ID', `cover_image_url` varchar(255) NOT NULL COMMENT '封面图地址', `age` varchar(50) DEFAULT NULL COMMENT '年代', `material` varchar(50) DEFAULT NULL COMMENT '材质', `excavation_info` text DEFAULT NULL COMMENT '出土信息', `story` text DEFAULT NULL COMMENT '文物故事', `model_url` text DEFAULT NULL COMMENT '3D/360°图地址', `is_hot` tinyint DEFAULT 0 COMMENT '热门标识(0否 1是)', `status` tinyint DEFAULT 1 COMMENT '状态(0隐藏 1显示)', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `creator` bigint DEFAULT NULL COMMENT '创建者id', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `updater` bigint DEFAULT NULL COMMENT '更新者id', PRIMARY KEY (`id`) ) COMMENT = '藏品'; -- 测试数据:邺城博物馆热门/普通藏品(15条) INSERT INTO `relic` (`name`, `category_id`, `cover_image_url`, `age`, `material`, `excavation_info`, `story`, `model_url`, `is_hot`, `status`, `create_time`, `creator`, `update_time`, `updater`) VALUES ('北齐石刻佛像', 1, '/api/files/get?fileName=relicCover/bei_qi_shike_foxiang.jpg', '北齐', '石质', '邺城遗址石窟区出土', '北齐时期石刻造像,线条劲挺,面相安详。', NULL, 1, 1, NOW(), 1, NOW(), 1), ('东魏青釉瓷碗', 2, '/api/files/get?fileName=relicCover/dong_wei_qingyou_ciwang.jpg', '东魏', '陶瓷', '邺城城址文化层出土', '胎质细腻,通体青釉,器形规整。', NULL, 1, 1, NOW(), 1, NOW(), 1), ('北齐石柱础', 1, '/api/files/get?fileName=relicCover/bei_qi_zhuchu.jpg', '北齐', '石质', '邺城宫殿区基址出土', '柱础覆莲纹,雕刻工整,体现工艺水准。', NULL, 0, 1, NOW(), 1, NOW(), 1), ('东魏鎏金饰片', 3, '/api/files/get?fileName=relicCover/dong_wei_liujin_shipian.jpg', '东魏', '金属', '邺城遗址手工业作坊出土', '鎏金工艺精湛,纹饰细密。', NULL, 1, 1, NOW(), 1, NOW(), 1), ('北齐陶俑', 2, '/api/files/get?fileName=relicCover/bei_qi_taoyong.jpg', '北齐', '陶', '邺城墓葬出土', '俑身比例匀称,服饰简洁,表情生动。', NULL, 0, 1, NOW(), 1, NOW(), 1), ('邺城瓦当', 4, '/api/files/get?fileName=relicCover/yecity_wadang.jpg', '北齐', '陶', '邺城宫殿区瓦件堆积出土', '瓦当纹饰清晰,常见卷云与莲纹。', NULL, 1, 1, NOW(), 1, NOW(), 1), ('邺城石刻残片', 1, '/api/files/get?fileName=relicCover/yecity_shike_canpian.jpg', '北齐', '石质', '邺城寺院区出土', '残片可见线刻与浅浮雕技法。', NULL, 0, 1, NOW(), 1, NOW(), 1), ('北齐碑刻', 1, '/api/files/get?fileName=relicCover/bei_qi_beike.jpg', '北齐', '石质', '邺城遗址碑廓出土', '字迹峻拔,为研究书法与历史提供资料。', NULL, 1, 1, NOW(), 1, NOW(), 1), ('邺城铜镜', 3, '/api/files/get?fileName=relicCover/yecity_tongjing.jpg', '北齐', '青铜', '邺城民居遗址出土', '背纹精美,折射古代生活审美。', NULL, 0, 1, NOW(), 1, NOW(), 1), ('邺城陶灯', 2, '/api/files/get?fileName=relicCover/yecity_taodeng.jpg', '东魏', '陶', '邺城手工业区出土', '造型朴素,实用性强。', NULL, 0, 1, NOW(), 1, NOW(), 1), ('邺城青铜器', 3, '/api/files/get?fileName=relicCover/yecity_qingtongqi.jpg', '北齐', '青铜', '邺城祭祀遗址出土', '铸造规整,纹饰典雅。', NULL, 1, 1, NOW(), 1, NOW(), 1), ('石雕护法像', 1, '/api/files/get?fileName=relicCover/shidiao_hufa.jpg', '北齐', '石质', '邺城寺院区出土', '表情威严,衣纹流畅,守护佛法之象。', NULL, 1, 1, NOW(), 1, NOW(), 1), ('鎏金佛像', 3, '/api/files/get?fileName=relicCover/liujin_foxiang.jpg', '北齐', '金属', '邺城佛教遗迹出土', '通体鎏金,庄严华美。', NULL, 1, 1, NOW(), 1, NOW(), 1), ('邺城瓷瓶', 2, '/api/files/get?fileName=relicCover/yecity_ciping.jpg', '东魏', '陶瓷', '邺城城址出土', '瓶身修长,青釉匀净。', NULL, 0, 1, NOW(), 1, NOW(), 1), ('石经残卷', 1, '/api/files/get?fileName=relicCover/shijing_canjuan.jpg', '北齐', '石质', '邺城经藏区出土', '石经残刻,见证佛教经典传播。', NULL, 0, 1, NOW(), 1, NOW(), 1); -- 公告表 DROP TABLE IF EXISTS `announcement`; CREATE TABLE `announcement` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '公告id', `title` varchar(100) NOT NULL COMMENT '标题', `content` text NOT NULL COMMENT '内容', `is_top` tinyint DEFAULT 0 COMMENT '置顶标识(0否 1是)', `status` tinyint DEFAULT 1 COMMENT '状态(0隐藏 1显示)', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '发布时间', `creator` bigint DEFAULT NULL COMMENT '发布者id', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `updater` bigint DEFAULT NULL COMMENT '更新者id', PRIMARY KEY (`id`) ) COMMENT='公告'; -- 预约时段表 DROP TABLE IF EXISTS `reservation_time_slot`; CREATE TABLE `reservation_time_slot` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '时段id', `date` date NOT NULL COMMENT '预约日期', `start_time` time NOT NULL COMMENT '开始时间', `end_time` time NOT NULL COMMENT '结束时间', `max_people` int NOT NULL COMMENT '最大人数', `current_people` int DEFAULT 0 COMMENT '已预约人数', `status` tinyint DEFAULT 1 COMMENT '状态(0不可约 1可约)', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `creator` bigint DEFAULT NULL COMMENT '创建者id', PRIMARY KEY (`id`) ) COMMENT='预约时段'; -- 预约记录表 DROP TABLE IF EXISTS `reservation`; CREATE TABLE `reservation` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '预约id(主表ID)', `user_id` bigint NOT NULL COMMENT '预约发起者id(关联sys_user.id)', `time_slot_id` bigint NOT NULL COMMENT '预约时段id(关联reservation_time_slot.id)', `total_visitors` int NOT NULL COMMENT '预约总人数(与明细表记录数一致)', `reserve_time` time NOT NULL COMMENT '预约时间', `qr_code` varchar(255) DEFAULT NULL COMMENT '预约凭证二维码(整单唯一)', `status` tinyint DEFAULT 0 COMMENT '整单状态(0待审核 1已通过 2已取消 3已驳回)', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '预约提交时间', `update_time` datetime DEFAULT NULL COMMENT '审核/更新时间', `updater` bigint DEFAULT NULL COMMENT '审核者id(关联sys_user.id)', `remark` varchar(500) DEFAULT NULL COMMENT '审核备注(如驳回原因)', PRIMARY KEY (`id`), KEY `idx_user_id` (`user_id`), KEY `idx_time_slot_id` (`time_slot_id`), KEY `idx_status` (`status`) ) COMMENT='预约'; -- 预约明细表 DROP TABLE IF EXISTS `reservation_visitor`; CREATE TABLE `reservation_visitor` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '明细ID', `reservation_id` bigint NOT NULL COMMENT '预约id', `real_name` varchar(30) NOT NULL COMMENT '游客真实姓名', `id_card` varchar(18) NOT NULL COMMENT '游客身份证号(唯一标识游客)', `phone` varchar(11) NOT NULL COMMENT '游客手机号', `visitor_qr_code` varchar(500) DEFAULT NULL COMMENT '游客个人入场二维码(可选,如分人验证)', `verify_status` tinyint DEFAULT 0 COMMENT '游客入场验证状态(0未验证 1已验证)', `verify_time` datetime DEFAULT NULL COMMENT '入场验证时间', PRIMARY KEY (`id`), KEY `idx_reservation_id` (`reservation_id`), KEY `idx_id_card` (`id_card`) ) COMMENT='游客预约明细'; -- 收藏表 DROP TABLE IF EXISTS `item_collection`; CREATE TABLE `item_collection` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '收藏id', `user_id` bigint NOT NULL COMMENT '用户id', `item_id` bigint NOT NULL COMMENT '藏品id', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '收藏时间', PRIMARY KEY (`id`) ) COMMENT='收藏';