# 酒店职位名称数据表 ## 概述 本项目基于 `酒店职位名称20250519.xlsx` 文件中的"汇总版"sheet,创建了标准化的酒店职位数据表。该表包含了酒店行业的标准部门和职位信息,可用于人力资源管理、组织架构设计等用途。 ## 数据统计 - **总记录数**: 150条 - **部门数量**: 9个 - **职位数量**: 144个不同职位 - **职级分类**: 3个级别 ### 部门分布 | 部门 | 职位数量 | |------|----------| | 餐饮部 | 61 | | 房务部 | 23 | | 市场销售部 | 17 | | 人力资源部 | 13 | | 财务部 | 13 | | 行政办公室 | 8 | | 工程部 | 8 | | 水疗部 | 4 | | 保安部 | 3 | ### 职级分布 | 职级 | 职位数量 | 占比 | |------|----------|------| | 经理级 | 120 | 80% | | 总监级 | 23 | 15.3% | | 总经理级 | 7 | 4.7% | ## 文件说明 ### 1. `hotel_positions_ddl.sql` PostgreSQL数据库表创建脚本,包含: - **表结构定义**: 包含所有必要字段和约束 - **索引创建**: 优化查询性能的索引 - **中文注释**: 详细的字段和表注释 - **触发器**: 自动更新`updated_at`字段 - **统计视图**: 部门和职级统计视图 - **示例查询**: 常用查询语句示例 ### 2. `import_hotel_positions.py` 数据导入脚本,功能包括: - 从Excel文件读取数据 - 数据清理和格式化 - 批量导入PostgreSQL数据库 - 导入结果验证和统计 ### 3. `read_excel.py` 和 `analyze_more.py` 数据分析脚本,用于: - 分析Excel文件结构 - 统计数据分布 - 验证数据质量 ## 使用方法 ### 第一步:创建数据库表 ```bash # 连接到PostgreSQL数据库 psql -h localhost -U your_username -d your_database # 执行DDL脚本 \i hotel_positions_ddl.sql ``` ### 第二步:导入数据 1. 修改 `import_hotel_positions.py` 中的数据库连接参数: ```python connection_params = { 'host': 'your_host', 'port': 5432, 'database': 'your_database_name', 'user': 'your_username', 'password': 'your_password' } ``` 2. 确保Excel文件在当前目录下 3. 运行导入脚本: ```bash python import_hotel_positions.py ``` ### 第三步:验证数据 ```sql -- 查看数据总数 SELECT COUNT(*) FROM hotel_positions; -- 查看部门统计 SELECT * FROM v_hotel_positions_dept_stats; -- 查看职级统计 SELECT * FROM v_hotel_positions_level_stats; ``` ## 表结构 ### 主要字段 | 字段名 | 类型 | 描述 | |--------|------|------| | `id` | SERIAL | 主键ID | | `sequence_no` | INTEGER | 原Excel序号 | | `department_zh` | VARCHAR(10) | 部门中文名称 | | `department_en` | VARCHAR(50) | 部门英文名称 | | `position_zh` | VARCHAR(20) | 职位中文名称 | | `position_en` | VARCHAR(100) | 职位英文名称 | | `position_abbr` | VARCHAR(20) | 职位英文缩写(可为空) | | `level_zh` | VARCHAR(10) | 职级中文名称 | | `level_en` | VARCHAR(30) | 职级英文名称 | ### 审计字段 | 字段名 | 类型 | 描述 | |--------|------|------| | `created_at` | TIMESTAMP WITH TIME ZONE | 创建时间 | | `updated_at` | TIMESTAMP WITH TIME ZONE | 更新时间 | | `created_by` | VARCHAR(50) | 创建者 | | `updated_by` | VARCHAR(50) | 更新者 | | `status` | VARCHAR(20) | 记录状态 | ## 常用查询示例 ### 1. 查询特定部门的所有职位 ```sql SELECT position_zh, position_en, level_zh FROM hotel_positions WHERE department_zh = '餐饮部' AND status = 'active' ORDER BY sequence_no; ``` ### 2. 查询高级职位(总监级及以上) ```sql SELECT department_zh, position_zh, position_en, level_zh FROM hotel_positions WHERE level_zh IN ('总监级', '总经理级') AND status = 'active' ORDER BY level_zh DESC, department_zh; ``` ### 3. 查询有英文缩写的职位 ```sql SELECT department_zh, position_zh, position_en, position_abbr FROM hotel_positions WHERE position_abbr IS NOT NULL AND position_abbr != '' AND status = 'active' ORDER BY department_zh; ``` ### 4. 部门职位数量统计 ```sql SELECT * FROM v_hotel_positions_dept_stats; ``` ### 5. 职级分布统计 ```sql SELECT * FROM v_hotel_positions_level_stats; ``` ## 维护说明 1. **数据更新**: 当有新的职位或组织结构变化时,更新相应记录的`status`字段 2. **版本管理**: 建议保留历史数据,通过`status`字段区分有效/无效记录 3. **定期同步**: 与HR系统定期同步,保持数据一致性 4. **备份**: 定期备份数据表,确保数据安全 ## 依赖要求 ### Python环境 ```bash pip install pandas openpyxl psycopg2-binary ``` ### PostgreSQL版本 - PostgreSQL 10.0 或更高版本 - 支持`COMMENT ON`语句 - 支持触发器和函数 ## 注意事项 1. **字符编码**: 确保数据库和客户端使用UTF-8编码 2. **空值处理**: `position_abbr`字段允许为空,其他字段均为必填 3. **索引优化**: 已创建常用查询的索引,如需其他查询模式可添加相应索引 4. **数据完整性**: 建议添加外键约束连接到其他相关表 ## 支持与反馈 如有问题或建议,请联系系统管理员或提交issue。