Bảng danh mục dùng chung (master data) là những bảng nhỏ, ít thay đổi, chứa các giá trị chuẩn mà mọi bảng khác chọn từ đó: nhóm hàng, đơn vị tính, tỉnh thành, kênh bán, lý do trả hàng, chi nhánh. Thay vì mỗi người gõ "Hà Nội", "HN", "Ha Noi" theo ý mình, bảng đơn hàng chỉ ghi một mã chọn từ danh mục, và mọi phép lọc, phép đếm đều đúng từ gốc.
Bài này phân biệt dữ liệu danh mục với dữ liệu giao dịch, liệt kê những danh mục doanh nghiệp nhỏ hay cần, cách thiết kế nhóm hàng nhiều cấp và đơn vị tính có quy đổi, cách giữ danh mục tỉnh thành sau đợt sắp xếp năm 2025, ai nên giữ danh mục và cách nhờ AI rà xem còn thiếu danh mục nào. Ví dụ là một cửa hàng tạp hoá giả định ở Nghệ An.
Dữ liệu danh mục khác dữ liệu giao dịch ở đâu
Dữ liệu của một cửa hàng chia thành hai loại rất khác tính nết. Dữ liệu giao dịch ghi lại những việc xảy ra: đơn bán, phiếu nhập, phiếu chi. Nó tăng lên mỗi ngày, mỗi dòng gắn với một thời điểm, và sau khi chốt sổ thì không sửa. Dữ liệu danh mục là bộ từ vựng mà dữ liệu giao dịch dùng để mô tả mình: hàng này thuộc nhóm nào, tính theo đơn vị gì, bán qua kênh nào, khách ở tỉnh nào. Nó ít dòng, ít đổi, nhưng mọi bảng khác đều dựa vào.
Phân biệt hai loại giúp bạn biết nên quản lý mỗi loại thế nào. Dữ liệu giao dịch thì nhiều người được thêm, ít người được sửa. Dữ liệu danh mục thì ngược lại: rất ít người được thêm hay sửa, vì một thay đổi nhỏ trong danh mục lan ra hàng nghìn dòng giao dịch. Đổi tên nhóm "Bánh kẹo" thành "Bánh kẹo, đồ ăn vặt" là đổi ý nghĩa của mọi đơn hàng cũ thuộc nhóm đó.
Bảng khách hàng và bảng sản phẩm nằm ở giữa: chúng là danh mục theo nghĩa được tham chiếu từ giao dịch, nhưng tăng thường xuyên. Bài này tập trung vào loại danh mục nhỏ hơn và ổn định hơn — những bảng mà người mới thường quên tạo, để rồi mỗi người gõ một kiểu.
Những danh mục doanh nghiệp nhỏ hay cần
Không phải doanh nghiệp nào cũng cần đủ, nhưng các danh mục dưới đây xuất hiện trong hầu hết cửa hàng và văn phòng dịch vụ. Cột tối thiểu là gợi ý; ví dụ là giả định.
| Danh mục | Dùng ở bảng nào | Cột tối thiểu | Lưu ý |
|---|---|---|---|
| Nhóm hàng | Sản phẩm | ma_nhom, ten_nhom, ma_nhom_cha, thu_tu | Thường có hai, ba cấp; xem phần phân cấp bên dưới |
| Đơn vị tính | Sản phẩm, phiếu nhập, chi tiết đơn | ma_dvt, ten_dvt | Đi kèm bảng quy đổi nếu nhập một đơn vị, bán đơn vị khác |
| Tỉnh thành, phường xã | Khách hàng, đơn hàng, nhà cung cấp | ma, ten, cap, hieu_luc_tu, hieu_luc_den | Có hiệu lực theo thời gian vì địa giới thay đổi |
| Kênh bán | Đơn hàng | ma_kenh, ten_kenh, dang_dung | Tách kênh có phí, có người phụ trách thành bảng có thêm cột |
| Lý do huỷ, trả hàng | Đơn hàng, phiếu trả | ma_ly_do, mo_ta, nhom | Giữ dưới mười lăm lý do để người nhập chọn được nhanh |
| Chi nhánh, kho | Phiếu nhập, xuất, đơn hàng | ma_kho, ten_kho, dia_chi | Cần ngay khi có từ hai điểm bán trở lên |
| Hình thức thanh toán | Đơn hàng, phiếu thu | ma_httt, ten | Không lưu thông tin tài khoản ngân hàng của khách ở đây |
Mỗi danh mục nên có cột dang_dung (đang dùng hay đã ngừng). Một kênh bán đã đóng hay một lý do không còn dùng thì đánh dấu ngừng, không xoá, để đơn cũ vẫn hiển thị đúng tên.
Nhóm hàng nhiều cấp: một cột trỏ về nhóm cha
Cửa hàng tạp hoá thường có nhóm lớn như Đồ uống, nhóm con như Nước ngọt, Bia, Sữa, và đôi khi thêm một cấp nữa. Cách làm hay gặp là ba cột Nhóm 1, Nhóm 2, Nhóm 3 trong bảng sản phẩm. Cách này chạy được khi mọi nhánh đều đúng ba cấp, nhưng thực tế có nhánh chỉ cần hai cấp, có nhánh cần bốn; lúc đó cột trống lẫn lộn và đổi tên một nhóm phải sửa trên hàng trăm sản phẩm.
Thiết kế gọn hơn là một bảng nhom_hang duy nhất, mỗi nhóm một dòng, có cột ma_nhom_cha trỏ về nhóm ngay trên nó. Nhóm cấp cao nhất để trống cột này. Bảng sản phẩm chỉ ghi mã nhóm thấp nhất mà món hàng thuộc về; muốn biết nó thuộc nhóm lớn nào thì lần ngược theo cột nhóm cha. Đổi tên một nhóm chỉ sửa một dòng; thêm cấp mới chỉ thêm dòng.
Nhược điểm là lần ngược nhiều cấp trong bảng tính hơi rườm, cần vài cột tra cứu phụ. Nếu cửa hàng chắc chắn chỉ có hai cấp cố định, cách đơn giản là bảng nhóm con có cột nhóm lớn, cũng được. Điều quan trọng là tên nhóm chỉ được gõ ở một nơi duy nhất, còn mọi chỗ khác chỉ chọn mã. Khi nhờ AI đề xuất cây nhóm hàng, đưa cho nó danh sách tên hàng tiêu biểu (không kèm giá nhập, nhà cung cấp) và yêu cầu nó nêu rõ nhóm nào nó không chắc.
Đơn vị tính và bảng quy đổi
Cửa hàng tạp hoá nhập bia theo thùng, bán theo lon và đôi khi theo lốc sáu lon. Nếu bảng sản phẩm chỉ có một cột đơn vị tính, tồn kho sẽ lẫn thùng với lon, và cuối tháng không ai cộng được. Cách tách đúng là xác định một đơn vị cơ sở cho mỗi mặt hàng — đơn vị nhỏ nhất được bán lẻ, ở đây là lon — và một bảng quy đổi ghi mỗi đơn vị khác bằng bao nhiêu đơn vị cơ sở.
Bảng quy đổi có ba cột: mã sản phẩm, mã đơn vị, hệ số. Ví dụ giả định: một thùng bằng 24 lon, một lốc bằng 6 lon. Phiếu nhập ghi số lượng và đơn vị nhập; đơn bán ghi số lượng và đơn vị bán; khi tính tồn kho, mọi số lượng được nhân hệ số để quy về lon. Quy cách đóng thùng có thể khác nhau giữa các mặt hàng, thậm chí giữa hai đợt hàng của cùng nhà cung cấp, nên hệ số gắn với từng mã sản phẩm chứ không dùng chung.
Bảng danh mục đơn vị tính bản thân nó nên ngắn và được chuẩn hoá chính tả: Thùng, Lốc, Lon, Chai, Gói, Kg. Đừng để vừa có "kg" vừa có "Kí" vừa có "kilogam". Hàng bán theo cân như gạo, đường thì đơn vị cơ sở có thể là kg hoặc gam; chọn một và ghi rõ trong từ điển dữ liệu, vì nhầm giữa hai đơn vị này là lỗi lệch nghìn lần.
Danh mục tỉnh thành khi địa giới thay đổi
Từ ngày 1 tháng 7 năm 2025, Việt Nam sắp xếp lại còn 34 tỉnh, thành phố và bỏ cấp huyện. Với dữ liệu, điều này có nghĩa danh mục địa giới không phải thứ cố định mãi; nó có hiệu lực theo thời gian. Thiết kế tốt phản ánh đúng điều đó: mỗi dòng trong danh mục có ngày bắt đầu hiệu lực và ngày hết hiệu lực, thay vì chỉ có tên.
Đừng xoá các tỉnh, huyện cũ khỏi danh mục. Đơn hàng năm 2024 giao về một huyện cũ vẫn phải hiển thị đúng địa chỉ lúc đó. Thêm các đơn vị mới với hiệu lực từ ngày áp dụng, đánh dấu đơn vị cũ hết hiệu lực, và lập một bảng đối chiếu cũ sang mới để khi cần gộp số liệu theo địa giới hiện hành thì có cầu nối. Lưu ý một xã, phường cũ có thể bị chia về nhiều đơn vị mới, nên bảng đối chiếu không phải lúc nào cũng một đổi một; trường hợp đó cần kiểm theo địa chỉ cụ thể.
Nguồn danh mục nên lấy từ văn bản và bảng mã chính thức của cơ quan có thẩm quyền, kiểm bản hiện hành, không chép lại từ một bảng tính lưu truyền trên mạng. AI có thể giúp chuyển một danh sách dạng văn bản thành bảng có cột, nhưng đừng tin trí nhớ của nó về tên hay mã đơn vị hành chính mới: kiến thức của mô hình có thể dừng trước đợt sắp xếp. Phần làm sạch địa chỉ khách sẵn có theo tỉnh mới có hướng dẫn riêng ở danh mục làm sạch dữ liệu của trang.
Ai giữ danh mục và nhờ AI rà danh mục còn thiếu
Danh mục chỉ có ích khi có người giữ, có quy trình thêm mới, và được dựng đủ ngay từ đầu. Các bước dưới đây áp cho cửa hàng tạp hoá trong ví dụ.
- Giao một người giữ mỗi danh mục, thường là người hiểu nghiệp vụ nhất: chủ cửa hàng giữ nhóm hàng, người giữ kho giữ đơn vị tính và quy đổi. Người khác cần thêm giá trị thì đề nghị; người giữ quyết định thêm mới hay dùng giá trị sẵn có.
- Đặt luật không sửa nghĩa của một mã đã dùng. Cần nghĩa khác thì tạo mã mới và đánh dấu mã cũ ngừng dùng, kèm cột ghi mã thay thế nếu có.
- Nhờ AI rà xem còn thiếu danh mục nào bằng câu lệnh mô tả công việc, không kèm dữ liệu: "Cửa hàng tạp hoá một điểm bán, có giao hàng trong phường, nhập hàng từ khoảng hai mươi nhà cung cấp, bán tại quầy và qua tin nhắn. Hiện có các bảng sản phẩm, đơn hàng, phiếu nhập. Liệt kê những bảng danh mục nên có, mỗi danh mục gồm cột tối thiểu, bảng nào dùng nó, và ví dụ ba giá trị giả định. Đánh dấu danh mục nào chỉ cần khi cửa hàng mở thêm điểm bán."
- Đối chiếu đề xuất với những cột đang được gõ tự do trong bảng hiện có. Cột nào gõ tự do mà có ít hơn vài chục giá trị khác nhau thường là ứng viên cho một danh mục.
- Ghi mỗi danh mục vào từ điển dữ liệu: ai giữ, ngày lập, nguồn của giá trị (văn bản chính thức hay quy ước nội bộ).
Việc đưa các giá trị đang gõ lệch ("Lon", "lon", "lon 330") về đúng mã trong danh mục là phần làm sạch, có hướng dẫn chi tiết về bảng ánh xạ ở danh mục làm sạch dữ liệu của trang; danh sách chọn và kiểm tra hợp lệ khi nhập có ở danh mục chất lượng dữ liệu. Chỉ cần nhớ một điều khi cài danh sách chọn: trỏ nó về bảng danh mục, không gõ cứng giá trị trong cài đặt, để danh mục thêm dòng thì danh sách tự cập nhật.
Câu hỏi thường gặp
Danh mục nên để ở cùng tệp với dữ liệu hay tệp riêng?
Với doanh nghiệp nhỏ, để cùng tệp là đơn giản và ít lỗi nhất. Khi nhiều tệp cùng dùng một danh mục, như nhiều chi nhánh có tệp riêng, thì tách danh mục ra một tệp chung và các tệp khác tham chiếu tới, để chỉ có một bản gốc.
Có nên dùng tên làm mã trong danh mục nhỏ như kênh bán không?
Với danh mục rất nhỏ và ổn định, dùng tên ngắn không dấu làm mã như TAIQUAY, ONLINE vẫn chấp nhận được. Nhưng tên hiển thị nên tách thành cột riêng, để khi cần đổi cách gọi thì không phải đổi mã đã nằm trong hàng nghìn đơn.
Khi gộp hai nhóm hàng thành một thì xử lý dữ liệu cũ thế nào?
Chọn mã nhóm giữ lại, đánh dấu nhóm kia ngừng dùng và ghi nhóm thay thế. Sản phẩm đang bán chuyển sang nhóm mới; đơn cũ có thể giữ nguyên, còn khi cần tổng hợp thì quy đổi qua cột nhóm thay thế.
Có thể dùng danh mục tỉnh thành do AI liệt kê không?
Không nên dùng làm nguồn. Kiến thức của mô hình có thể chưa cập nhật sau đợt sắp xếp địa giới, và mã đơn vị hành chính phải chính xác tuyệt đối. Lấy từ nguồn chính thức, AI chỉ nên giúp đổi định dạng.
Danh mục có cần lưu lịch sử thay đổi không?
Nên có, ít nhất là cột ngày tạo, ngày ngừng dùng và một trang ghi chép thay đổi. Khi số liệu theo nhóm hàng của hai năm không khớp nhau, lịch sử thay đổi danh mục thường là lời giải thích.
Danh mục đơn vị tính có cần thống nhất với hoá đơn điện tử không?
Đơn vị tính trên hoá đơn nên khớp với cách cửa hàng thật sự bán và với cách ghi nhất quán trong sổ sách. Quy định cụ thể về nội dung hoá đơn cần kiểm theo văn bản hiện hành hoặc hỏi kế toán; danh mục nội bộ chỉ giúp ghi thống nhất.