Chương 2: Mô hình hóa dữ liệu — Hai bảng giải quyết hệ thống ticket
Chương trước chúng ta đã cài đặt NocoBase và làm quen với giao diện. Bây giờ, chúng ta cần dựng khung xương cho hệ thống ticket — định nghĩa data model.
Chương này sẽ tạo hai bảng dữ liệu ticket và phân loại, cấu hình kiểu Field (single line text, dropdown select, liên kết many-to-one, v.v.) và thiết lập quan hệ liên kết giữa các bảng. Data model là nền móng của hệ thống: nghĩ rõ trước về việc cần lưu những dữ liệu gì, giữa các dữ liệu có quan hệ gì, sau đó việc xây giao diện, cấu hình quyền mới có thể trôi chảy.
2.1 Bảng dữ liệu và Field là gì
Nếu bạn đã dùng Excel, hiểu bảng dữ liệu sẽ rất dễ:

Ví dụ "bảng ticket" mà chúng ta sắp tạo, giống như một bảng Excel — mỗi cột là một Field (tiêu đề, trạng thái, ưu tiên…), mỗi dòng là một record ticket.
Tuy nhiên, NocoBase mạnh hơn Excel rất nhiều. Nó hỗ trợ nhiều kiểu bảng dữ liệu, các kiểu khác nhau có khả năng khác nhau:
Hôm nay chúng ta sẽ dùng bảng thường và bảng cây, các kiểu khác sau này dùng đến sẽ học.
Vào quản lý data source: Click biểu tượng "Quản lý data source" ở góc dưới bên trái (biểu tượng cơ sở dữ liệu cạnh bánh răng), bạn sẽ thấy "data source chính" — tất cả bảng của chúng ta đều được tạo ở đây.

2.2 Tạo bảng cốt lõi: Ticket
Đi thẳng vào chủ đề, tạo cốt lõi của hệ thống trước — bảng ticket.
Tạo bảng
- Trong trang quản lý data source, click data source chính để vào

- Click "Tạo bảng dữ liệu", chọn "Bảng thường"

- Tên bảng dữ liệu:
tickets, tiêu đề bảng dữ liệu:Ticket

Khi tạo bảng, hệ thống sẽ tự động đánh dấu một bộ Field hệ thống, chúng sẽ tự động ghi lại metadata của mỗi record:
Các Field hệ thống này giữ mặc định là được, không cần quản lý thủ công. Nếu một số tình huống không cần, cũng có thể bỏ tick.
Thêm Field cơ bản
Bảng đã tạo xong, tiếp theo thêm Field. Click "Cấu hình Field (Configure fields)" của bảng ticket, bạn sẽ thấy các Field hệ thống mặc định vừa rồi đã có trong danh sách.


Click nút "Thêm Field (Add field)" ở góc trên bên phải, sẽ hiện ra danh sách dropdown các kiểu Field — chọn kiểu Field bạn muốn thêm.

Chúng ta thêm các Field của riêng ticket trước, Field liên kết sẽ thêm sau.
1. Tiêu đề (Single line text)
Mỗi ticket cần một tiêu đề ngắn gọn để tóm tắt vấn đề. Click "Thêm Field" → chọn "Single line text":

- Tên Field:
title, tiêu đề Field:Tiêu đề - Click "Cài đặt validation rule", thêm một rule "Bắt buộc"

2. Mô tả (Markdown(Vditor))
Dùng để mô tả chi tiết vấn đề, hỗ trợ format, tiện cho dán hình, dán code. Trong "Thêm Field" → phân loại "Media" có ba lựa chọn:
Chúng ta chọn Markdown(Vditor).

- Tên Field:
description, tiêu đề Field:Mô tả

3. Trạng thái (Dropdown - single select)
Ticket từ lúc submit đến khi hoàn thành cần có một trạng thái để theo dõi tiến độ.
- Tên Field:
status, tiêu đề Field:Trạng thái - Thêm các option (mỗi option cần điền "giá trị option" và "label option", màu sắc tùy chọn):

Điền option và lưu trước. Sau đó click lại "Edit" của Field này, lúc này có thể chọn "Chờ xử lý" trong "giá trị mặc định".


Lần đầu tạo chưa có dữ liệu option, nên giá trị mặc định không chọn được — cần lưu xong mới quay lại cài đặt.
Tại sao dùng dropdown single select? Vì trạng thái là vài giá trị cố định, dropdown có thể ngăn Người dùng điền tùy ý, đảm bảo dữ liệu chuẩn.
4. Mức độ ưu tiên (Dropdown - single select)
Phân biệt mức độ khẩn cấp của ticket, tiện cho người xử lý sắp xếp theo ưu tiên.
- Tên Field:
priority, tiêu đề Field:Mức độ ưu tiên - Thêm các option:
Đến đây, bảng ticket đã có 4 Field cơ bản. Nhưng — ticket chắc nên có "phân loại" chứ? Như "vấn đề mạng" "lỗi phần mềm"?
Nếu làm phân loại thành dropdown, dĩ nhiên cũng được. Nhưng bạn sẽ nhanh chóng nhận ra: phân loại có thể có phân loại con ("vấn đề phần cứng" còn có "màn hình" "bàn phím" "máy in"), dropdown thì không đủ.
Chúng ta cần một bảng khác chuyên để quản lý phân loại. Và bảng này, dùng bảng cây của NocoBase tạo là phù hợp nhất.

