> ## Documentation Index
> Fetch the complete documentation index at: https://learn.cleeksy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Bảng con (Child table)

> Thiết kế bảng con để lưu dữ liệu dạng dòng chi tiết.

Sub-dataset (bảng con/child table) là một **Field** trong Entity, dùng để biểu diễn dữ liệu **phân cấp**: một record “cha” chứa nhiều record “con”.

Ví dụ phổ biến:

* Order có nhiều Order Items
* Purchase Request có nhiều Request Items
* Case có nhiều Activity/Comments

## Dùng khi nào?

* Dữ liệu con **luôn** thuộc về dữ liệu cha (cùng ownership, cùng vòng đời)
* Cần nhập và xem danh sách item ngay trong màn hình của record cha
* Cần tổng hợp nhanh (tổng tiền, số lượng) trên các item

## Khi nào không nên dùng?

* Dữ liệu con có ownership khác, hoặc có vòng đời độc lập
* Cần chia sẻ dữ liệu con cho nhiều app/đơn vị khác nhau
* Cần nhiều workflow riêng cho dữ liệu con

Trong các trường hợp này, cân nhắc tách ra Entity riêng và liên kết bằng [Kết nối dữ liệu một chiều (Data Connection one-way)](/build-apps/data-modeling/data-connection-one-way).

## Thiết kế tối thiểu

Với một Entity cha (ví dụ `Purchase Request`):

* Field `Items`: Sub-dataset
* Trong Sub-dataset, khai báo các cột/field cho item:
* Item name (Text)
* Quantity (Number)
* Unit price (Currency)
* Amount (Formula)

Sau đó:

* Rollup `Total cost` = Sum(Items.Amount)

Liên quan:

* [Tổng hợp (Rollup)](/build-apps/data-modeling/rollup)
* [Công thức (Formula)](/build-apps/data-modeling/formula)

## Thực hành tốt

* Giữ Sub-dataset “đủ dùng” cho vòng đầu (không tạo quá nhiều cột)
* Chuẩn hoá cách đặt tên: `Items`, `Line items`, `Activities`
* Tạo Rollup cho các chỉ số quan trọng (tổng tiền, số item)
* Đặt controls phù hợp: ai được thêm/sửa/xoá item (Roles/Workflow)

Liên quan: [Controls trong hệ thống (workflow vs validation vs roles)](/foundations/controls-in-system)

## Ví dụ: Purchase Request

* `Purchase Request` có Sub-dataset `Request Items`
* Người dùng nhập nhiều dòng hàng ngay trong record
* Hệ thống rollup tổng chi phí để phục vụ phê duyệt

## Bước tiếp theo

* Tổng hợp dữ liệu: [Tổng hợp (Rollup)](/build-apps/data-modeling/rollup)
* Liên kết dữ liệu giữa Entity/App: [Kết nối dữ liệu một chiều (Data Connection one-way)](/build-apps/data-modeling/data-connection-one-way)
