Quy ước đặt tên (Naming Conventions)
1. Tên bảng
Quy tắc:t_huca_<tên_số_nhiều> — chữ thường, dùng dấu gạch dưới.
| Loại | Ví dụ |
|---|---|
| Thực thể đơn | t_huca_users, t_huca_events, t_huca_companies |
| Bảng quan hệ N:N | t_huca_group_members, t_huca_user_roles |
| Bảng danh mục | t_huca_provinces, t_huca_faculties, t_huca_roles |
| Bảng log | t_huca_audit_logs, t_huca_email_logs |
2. Tên trường (Columns)
Quy tắc: TitleCase (PascalCase) — viết hoa chữ cái đầu mỗi từ.Khóa chính
Khóa ngoại
Trường thông thường
Trường Boolean
Dùng tiền tốIs hoặc Has:
Trường ngày giờ
3. Constraint
Primary Key
Unique Constraint
Foreign Key
4. Index
5. Kiểu dữ liệu chuẩn
| Mục đích | Kiểu | Ghi chú |
|---|---|---|
| Khóa chính (bảng lớn) | BIGINT IDENTITY(1,1) | users, events, posts, messages… |
| Khóa chính (danh mục) | INT IDENTITY(1,1) | faculties, provinces, roles… |
| Chuỗi Tiếng Việt | NVARCHAR(n) | Bắt buộc dùng N-prefixed |
| Chuỗi không dấu | VARCHAR(n) | Code, URL, Email, IP… |
| Số tiền | DECIMAL(18,2) | 2 chữ số thập phân |
| Tọa độ GPS | DECIMAL(10,7) | 7 chữ số thập phân |
| Phần trăm/Điểm | DECIMAL(5,2) | VD: 95.50% |
| Ngày giờ | DATETIME2 | Ưu tiên hơn DATETIME |
| Ngày | DATE | Không lưu giờ phút |
| Boolean | BIT | 1/0, DEFAULT rõ ràng |
| JSON data | NVARCHAR(MAX) | OptionsJson, AnswersJson… |
| HTML content | NVARCHAR(MAX) | Content bài viết, email… |
6. Giá trị Enum (Status Fields)
Dùng chuỗi mô tả rõ ràng thay vì số nguyên:Quy ước giá trị Status theo bảng
| Bảng | Trường Status | Giá trị |
|---|---|---|
t_huca_users | IsApproved | BIT (0/1) |
t_huca_events | Status | Draft, Published, Ongoing, Completed, Cancelled |
t_huca_jobs | Status | Draft, Active, Closed, Filled |
t_huca_fundraising_campaigns | Status | Draft, Active, Completed, Closed |
t_huca_payments | Status | Pending, Completed, Failed, Refunded |
t_huca_training_programs | Status | Draft, Open, InProgress, Completed, Cancelled |
t_huca_mentorship_matches | Status | Pending, Active, Completed, Cancelled |
t_huca_event_attendances | Status | Valid, Invalid, Suspicious |
t_huca_admin_requests | Status | Received, Processing, Completed, Rejected |
7. Trường polymorphic
Khi 1 bảng quan hệ với nhiều bảng khác nhau, dùng cặp<Type> + <Id>: