---
title: "Chia tiền gia đình & đồng bộ"
url: https://phatdev.net/docs/moneyflow/chia-tien-dong-bo
lang: vi
updated: 2026-10-23
alternate:
  en: https://phatdev.net/en/docs/moneyflow/chia-tien-dong-bo
markdown: https://phatdev.net/docs/moneyflow/chia-tien-dong-bo.md
---

# Chia tiền gia đình & đồng bộ

Thuộc bộ tài liệu: [MoneyFlow](https://phatdev.net/docs/moneyflow.md)

> Cách chia đều chi phí, sổ chung gồm những gì, cách đồng bộ hoạt động và vai trò thành viên.

**Chia tiền gia đình** và **đồng bộ** là hai mặt của cùng một ý tưởng: cả nhà dùng chung một sổ, nên ứng dụng có thể cho biết ai đã chi bao nhiêu và ai cần chuyển cho ai. Trang này mô tả cách chia tiền, sổ chung gồm những gì, và cách đồng bộ hoạt động.

<div style="margin:1.6em 0"><figure style="margin:0"><a href="https://phatdev.net/uploads/p/moneyflow/family-vi-light-3840.webp" target="_blank" rel="noopener" class="pd-th-light" style="display:block;border:0" aria-label="Chia tiền gia đình: tổng chi từng người, phần chia đều, gợi ý cân bằng (dữ liệu minh hoạ) (4K)"><img src="https://phatdev.net/uploads/p/moneyflow/family-vi-light-1920.webp" srcset="/uploads/p/moneyflow/family-vi-light-960.webp 960w, /uploads/p/moneyflow/family-vi-light-1920.webp 1920w, /uploads/p/moneyflow/family-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 760px" width="3840" height="2160" alt="Chia tiền gia đình: tổng chi từng người, phần chia đều, gợi ý cân bằng (dữ liệu minh hoạ)" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><a href="https://phatdev.net/uploads/p/moneyflow/family-vi-dark-3840.webp" target="_blank" rel="noopener" class="pd-th-dark" style="display:block;border:0" aria-label="Chia tiền gia đình: tổng chi từng người, phần chia đều, gợi ý cân bằng (dữ liệu minh hoạ) (4K)"><img src="https://phatdev.net/uploads/p/moneyflow/family-vi-dark-1920.webp" srcset="/uploads/p/moneyflow/family-vi-dark-960.webp 960w, /uploads/p/moneyflow/family-vi-dark-1920.webp 1920w, /uploads/p/moneyflow/family-vi-dark-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 760px" width="3840" height="2160" alt="Chia tiền gia đình: tổng chi từng người, phần chia đều, gợi ý cân bằng (dữ liệu minh hoạ)" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">Chia tiền gia đình: tổng chi từng người, phần chia đều, gợi ý cân bằng (dữ liệu minh hoạ)</figcaption></figure></div>

## Chia tiền gia đình

Mở từ Tài khoản, mục Công cụ, chọn Chia tiền gia đình. Chọn kỳ ở đầu màn: Tuần, Tháng, 3 tháng hoặc Năm.

- **Tổng chi của cả nhà** trong kỳ, và phần chia đều cho mỗi người.
- **Từng thành viên**: số đã chi, tỷ lệ so với tổng chi, và chênh lệch so với phần chia đều. Người chi nhiều hơn phần của mình hiện "Được hoàn lại"; người chi ít hơn hiện "Cần trả thêm"; chênh lệch dưới 1.000 đồng hiện "Cân bằng".
- **Gợi ý cân bằng**: danh sách chuyển khoản tối thiểu để mọi người về mức bằng nhau, ví dụ "A chuyển cho B một số tiền". Khi chi tiêu đã cân bằng, màn hiển thị "Chi tiêu đã cân bằng".

Cách tính:

- Chỉ tính **khoản chi**; thu nhập không tham gia.
- Chia đều cho **mọi thành viên đã đăng ký**, kể cả người chưa ghi khoản chi nào, vì họ vẫn có phần của mình. Người nào đó có chi mà chưa có trong danh sách thành viên vẫn được tính.
- Khoản chi không có tên người ghi bị bỏ qua, để không làm loãng phần chia của mọi người.
- Khi chỉ có một người chi tiêu, màn hiển thị "Chỉ có một thành viên chi tiêu" và không đưa ra số cần chuyển.

## Sổ chung gồm những gì

Khi đăng nhập vào máy chủ đồng bộ, ba loại dữ liệu được dùng chung cho cả gia đình:

- **Giao dịch**: số tiền, ghi chú, danh mục, ngày, người ghi, địa điểm, nhãn.
- **Danh mục**, kể cả danh mục tự tạo.
- **Ngân sách**.

Các dữ liệu còn lại lưu riêng trên máy của từng người, không đồng bộ: tiền tiết kiệm, vàng, mục tiêu tiết kiệm, nợ và cho vay, nhắc hoá đơn, khoản định kỳ, và tệp ảnh hoá đơn (đồng bộ chỉ mang theo đường dẫn ảnh, không mang tệp). Giao dịch do khoản định kỳ tạo ra vẫn là giao dịch bình thường và được đồng bộ.

## Cách đồng bộ hoạt động

MoneyFlow dùng cách "máy trước, máy chủ sau": mọi thao tác ghi vào máy ngay, đồng bộ chạy sau. Bạn vẫn ghi chép bình thường khi không có mạng.

- **Đồng bộ ngay.** Trong Tài khoản, mục Dữ liệu, trạng thái "Đã kết nối" kèm lần đồng bộ cuối, và nút "Đồng bộ ngay". Ứng dụng cũng đồng bộ ngay sau khi đăng nhập.
- **Đẩy rồi kéo.** Ứng dụng gửi các thay đổi trên máy lên máy chủ, theo từng lô tối đa 500 bản ghi, rồi tải về các thay đổi của người khác.
- **Con trỏ theo giờ máy chủ.** Mốc "đã đồng bộ đến đâu" lấy theo thời điểm máy chủ ghi nhận thay đổi, không theo đồng hồ của máy. Nhờ vậy một chỉnh sửa gửi lên muộn từ máy ngoại tuyến lâu hoặc lệch giờ vẫn đến được các máy khác.
- **Xoá mềm.** Xoá một giao dịch thực chất là đánh dấu đã xoá, để thay đổi này đến được mọi thiết bị.
- **Xung đột.** Khi hai máy sửa cùng một bản ghi, bản sửa sau cùng thắng.
- **Kiểm tra khi gửi.** Máy chủ kiểm tra dữ liệu gửi lên. Bản ghi sai định dạng bị từ chối kèm thông báo chỉ rõ bản ghi nào; một bản ghi hỏng không chặn việc tải dữ liệu về.
- **Phiên hết hạn.** Phiên mặc định 30 ngày. Khi hết hạn, màn Tài khoản mời đăng nhập lại, và các thay đổi đang chờ được đẩy lên sau đó.

## Xoá toàn bộ dữ liệu

Trong Tài khoản có mục "Xoá toàn bộ dữ liệu". Ứng dụng xoá giao dịch, ngân sách, nợ, vàng, tiết kiệm và mục tiêu trên máy, và khi đang đăng nhập thì xoá cả sổ chung trên máy chủ. Nếu việc xoá trên máy chủ thất bại, ứng dụng không xoá gì trên máy. Chỉ tài khoản quản lý mới xoá được dữ liệu trên máy chủ. Không thể hoàn tác.

Đăng xuất cũng thoát phiên đồng bộ và xoá mã phiên khỏi Keychain.

## Thành viên và vai trò

Mỗi thành viên đăng nhập bằng một tài khoản trên máy chủ. Có hai vai trò: **Quản lý** và **Thành viên**. Tài khoản Quản lý thấy thêm mục "Quản lý tài khoản" và là người duy nhất xoá được dữ liệu trên máy chủ.

Hiện máy chủ khởi tạo sẵn hai tài khoản (một Quản lý, một Thành viên) theo danh sách trong `Backend/src/db/init.js`. Muốn thêm người khác, quản trị máy chủ bổ sung vào danh sách này rồi chạy lại `npm run db:init`; tài khoản đã có không bị đổi mật khẩu.
