Files
hr-performance-system/database/README.md
donald c24634f4b7 Initial commit: HR Performance System
- Database schema with 31 tables for 4-card system
- LLM API integration (Gemini, DeepSeek, OpenAI)
- Error handling system with modal component
- Connection test UI for LLM services
- Environment configuration files
- Complete database documentation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 23:34:13 +08:00

257 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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