Files
member-platform/docs/DB_SCHEMA.md

44 lines
1.2 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.
# DB Schema現行
## 真實來源
- `backend/scripts/init_schema.sql`
- 線上增量:`backend/scripts/migrate_add_users_username.sql`
- 欄位重命名增量:`backend/scripts/migrate_rename_identity_columns.sql`
## 主要表
- `users`
- `user_sub` UNIQUE
- `idp_user_id` VARCHAR(128)
- `username` UNIQUE
- `email` UNIQUE
- `display_name`
- `is_active`, `status`, timestamps
- `companies`
- `sites``company_id -> companies.id`
- `systems`
- `modules``system_key -> systems.system_key`
- `permission_groups`
- `permission_group_members`group + user_sub
- `permission_group_permissions`group + site/system/module/action
- `user_scope_permissions`(相容保留)
- `api_clients`(保留給機器對機器用途)
## 權限規則
- `scope_type='site'`
- `action in ('view','edit')`
## 會員與 IdP 對齊Keycloak 優先)
- `users.user_sub` 對應 IdP 主體識別
- `users.username` 對應 IdP `username`
- `users.display_name` 對應 IdP 顯示名稱
## 快速檢查 SQL
```sql
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name='users'
ORDER BY ordinal_position;
SELECT COUNT(*) FROM users WHERE username IS NULL;
```