# HR 績效評核系統 - 資料庫說明 ## 資料庫連線資訊 ``` DB_HOST: mysql.theaken.com DB_PORT: 33306 DB_NAME: db_A102 DB_USER: A102 DB_PASSWORD: Bb123456 ``` ## 資料庫結構 本系統使用 MySQL 資料庫,包含以下主要模組: ### 一、基礎資料表 (5張) - `hr_departments` - 部門組織架構 - `hr_job_levels` - 職級定義 - `hr_employees` - 員工資料 - `hr_system_roles` - 系統角色權限 - `hr_employee_roles` - 員工角色關聯 ### 二、職能字典 (3張) - `hr_competency_categories` - 職能分類 - `hr_competency_dictionary` - 職能字典 - `hr_competency_behaviors` - 職能行為指標 ### 三、角色卡模組 (6張) - `hr_role_cards` - 角色卡主表 - `hr_role_responsibilities` - 角色卡職責 - `hr_role_supervisees` - 角色卡督導對象 - `hr_role_collaborators` - 角色卡協作夥伴 - `hr_role_kra` - 角色卡KRA - `hr_role_kpi` - 角色卡KPI ### 四、能力卡模組 (3張) - `hr_competency_cards` - 能力卡主表 - `hr_competency_card_hard_skills` - 能力卡硬性能力 - `hr_competency_card_soft_skills` - 能力卡軟性能力 ### 五、績效卡模組 (4張) - `hr_review_cycles` - 評核週期設定 - `hr_performance_cards` - 績效卡主表 - `hr_performance_goals` - 績效卡目標評核 - `hr_performance_behaviors` - 績效卡行為評估 ### 六、成長卡模組 (5張) - `hr_growth_cards` - 成長卡主表 - `hr_growth_focus_areas` - 成長卡發展焦點 - `hr_growth_idp_goals` - 成長卡IDP目標 - `hr_growth_actions` - 成長卡行動計畫 - `hr_growth_tracking` - 成長卡追蹤紀錄 ### 七、系統支援 (5張) - `hr_approval_records` - 審批記錄 - `hr_system_settings` - 系統設定 - `hr_rating_thresholds` - 等級分界設定 - `hr_version_snapshots` - 版本快照 - `hr_audit_logs` - 操作日誌 **總計:31張資料表** ## 安裝步驟 ### 1. 建立資料庫結構 連線到 MySQL 伺服器後,執行以下命令: ```bash mysql -h mysql.theaken.com -P 33306 -u A102 -p db_A102 < schema.sql ``` 或使用 MySQL Workbench / phpMyAdmin 等工具匯入 [schema.sql](schema.sql) ### 2. 匯入初始資料 ```bash mysql -h mysql.theaken.com -P 33306 -u A102 -p db_A102 < seed_data.sql ``` 或使用 MySQL Workbench / phpMyAdmin 等工具匯入 [seed_data.sql](seed_data.sql) ## 初始資料內容 執行 `seed_data.sql` 後會建立以下初始資料: ### 系統角色 (4個) - ADMIN - 系統管理員 - HR - 人力資源 - MANAGER - 部門主管 - EMPLOYEE - 一般員工 ### 職級 (9個) - L1 助理專員 → L9 總經理 ### 職能字典 (10個核心職能) **通用職能 (5個)** - CORE-001: 溝通協調 - CORE-002: 團隊合作 - CORE-003: 問題解決 - CORE-004: 執行力 - CORE-005: 學習成長 **管理職能 (5個)** - MGMT-001: 策略思維 - MGMT-002: 團隊領導 - MGMT-003: 橫向整合力 - MGMT-004: 決策判斷 - MGMT-005: 人才培育 ### 職能行為指標 每個職能都包含 L1-L5 共5個等級的行為指標描述 ### 系統設定 - 目標權重:70% - 行為權重:30% - 預設語言:繁體中文 - 啟用季度評核 - IDP最大目標數:4 ### 等級分界 - A+: 90-100分 (建議10%) - A: 80-89.99分 (建議22.5%) - B+: 70-79.99分 (建議35%) - B: 60-69.99分 (建議22.5%) - C: 0-59.99分 (建議10%) ## 資料庫特性 ### 字符集 - 使用 `utf8mb4_unicode_ci` 支援多語系與特殊字符 ### 引擎 - 使用 `InnoDB` 引擎支援交易與外鍵約束 ### 索引優化 - 已在常用查詢欄位建立索引 - 外鍵關聯已建立索引 ### 資料完整性 - 使用外鍵約束確保資料關聯正確 - 設定適當的 `ON DELETE` 策略 ## 開發建議 ### 連線測試 ```javascript // Node.js 範例 const mysql = require('mysql2'); const connection = mysql.createConnection({ host: 'mysql.theaken.com', port: 33306, user: 'A102', password: 'Bb123456', database: 'db_A102' }); connection.connect((err) => { if (err) { console.error('連線失敗:', err); return; } console.log('資料庫連線成功!'); }); ``` ### 常用查詢範例 #### 查詢員工及其部門資訊 ```sql SELECT e.employee_no, e.name_zh, d.dept_name_zh, l.level_name_zh FROM hr_employees e JOIN hr_departments d ON e.department_id = d.id JOIN hr_job_levels l ON e.job_level_id = l.id WHERE e.status = 'active'; ``` #### 查詢職能字典完整資訊 ```sql SELECT cd.competency_code, cd.competency_name_zh, cc.category_name_zh, cb.level_num, cb.behavior_description_zh FROM hr_competency_dictionary cd JOIN hr_competency_categories cc ON cd.category_id = cc.id LEFT JOIN hr_competency_behaviors cb ON cd.id = cb.competency_id WHERE cd.is_active = TRUE ORDER BY cd.id, cb.level_num; ``` #### 查詢員工的角色卡資訊 ```sql SELECT rc.card_code, rc.role_name_zh, e.name_zh AS employee_name, d.dept_name_zh, GROUP_CONCAT(rr.responsibility_zh SEPARATOR '; ') AS responsibilities FROM hr_role_cards rc JOIN hr_employees e ON rc.employee_id = e.id JOIN hr_departments d ON rc.department_id = d.id LEFT JOIN hr_role_responsibilities rr ON rc.id = rr.role_card_id WHERE rc.status = 'approved' GROUP BY rc.id; ``` ## 維護建議 ### 定期備份 ```bash # 完整備份 mysqldump -h mysql.theaken.com -P 33306 -u A102 -p db_A102 > backup_$(date +%Y%m%d).sql # 僅備份結構 mysqldump -h mysql.theaken.com -P 33306 -u A102 -p --no-data db_A102 > schema_backup.sql # 僅備份資料 mysqldump -h mysql.theaken.com -P 33306 -u A102 -p --no-create-info db_A102 > data_backup.sql ``` ### 效能監控 - 定期檢查慢查詢日誌 - 監控資料表大小成長 - 定期執行 `OPTIMIZE TABLE` 優化資料表 ### 擴充建議 - 職能字典可依需求新增專業職能 - 部門結構可依組織調整 - 評核週期需每年設定 ## 注意事項 1. **密碼安全**: 請定期更換資料庫密碼 2. **權限管理**: 建議為不同環境建立不同的資料庫使用者 3. **資料保護**: 員工個資需遵守相關法規保護 4. **版本控制**: 資料庫結構變更需建立遷移腳本 5. **測試環境**: 建議另建測試資料庫進行開發測試 ## 技術支援 如有任何資料庫相關問題,請聯繫系統管理員。 --- **最後更新**: 2025-12-03 **版本**: 1.0