Sales giữ danh sách khách hàng trong Google Sheet, kế toán dùng một file Excel khác, còn hệ thống mới cần nhận cả hai. Tên cột, số điện thoại và định dạng ngày không thống nhất. Nếu sản phẩm ghi thẳng tệp vào cơ sở dữ liệu, một lỗi nhỏ có thể tạo hàng trăm bản ghi khó sửa. Vì vậy, nhập CSV cần được thiết kế như một quy trình có kiểm tra và xác nhận.

Các khối dữ liệu thô được tách thành những tuyến kiểm tra riêng

Đầu vào nào cần được chốt trước khi thiết kế giao diện?

Đội sản phẩm cần bắt đầu bằng vài tệp thật đã loại bỏ thông tin nhạy cảm. Hãy liệt kê tên cột, kiểu dữ liệu, giá trị trống và cách biểu diễn ngày tháng.

Với mỗi trường đích, cần ghi kiểu dữ liệu, tính bắt buộc, giới hạn độ dài và cách chuẩn hóa. Email có thể dùng để phát hiện trùng. Số điện thoại cần bỏ khoảng trắng, còn mã khách hàng có số 0 ở đầu phải được coi là chuỗi.

Mẫu CSV phù hợp khi nguồn ổn định. Nếu dữ liệu đến từ nhiều phần mềm, nên có bước ánh xạ cột. MVP chưa cần trình biến đổi phức tạp.

Luồng nhập dữ liệu cần tách kiểm tra khỏi ghi dữ liệu

Một lần nhập nên có trạng thái riêng: đã tải lên, đang kiểm tra, chờ xác nhận, đang ghi, hoàn tất hoặc thất bại. Người dùng biết tệp đang ở đâu, còn kỹ thuật có thể chạy lại đúng bước mà không tạo thêm dữ liệu.

Một chuỗi cổng tuần tự kiểm tra tệp, ánh xạ, xem trước và xác nhận

Quy trình nhập CSV an toàn cho MVP

  1. Bước 1: Nhận tệp và kiểm tra cấu trúc

    Hệ thống kiểm tra định dạng, dung lượng, bảng mã, hàng tiêu đề và số cột. Tệp sai phải dừng trước khi đọc nội dung.

  2. Bước 2: Ánh xạ cột nguồn với trường đích

    Người dùng ghép cột nguồn với trường đích. Hệ thống cảnh báo trường bắt buộc chưa được ánh xạ.

  3. Bước 3: Chuẩn hóa và kiểm tra từng dòng

    Dữ liệu được chuẩn hóa, rồi kiểm tra kiểu, độ dài và điều kiện nghiệp vụ. Kết quả chưa được ghi vào dữ liệu chính.

  4. Bước 4: Hiển thị bản xem trước và ngoại lệ

    Người dùng thấy số dòng hợp lệ, dòng lỗi, mẫu và lý do cụ thể. Họ có thể sửa tệp hoặc xác nhận xử lý.

  5. Bước 5: Ghi dữ liệu và xuất kết quả

    Hệ thống ghi dữ liệu theo lô, lưu trạng thái từng dòng và tạo tệp kết quả.

Bản xem trước chỉ cần đủ để nhận ra ánh xạ sai, ký tự lỗi hoặc ngày tháng bị hiểu nhầm. Thông báo phải gọi đúng trường và điều kiện, ví dụ email thiếu tên miền hoặc mã khách hàng đã tồn tại.

Nên dừng cả tệp hay vẫn nhập các dòng hợp lệ?

Đây là quyết định nghiệp vụ. Với bảng giá có quan hệ giữa nhiều dòng, một lỗi có thể khiến toàn bộ tệp phải dừng. Với danh sách liên hệ độc lập, sản phẩm có thể nhập dòng hợp lệ và trả lại tệp chứa dòng lỗi.

Kết quả phải nêu số dòng đã đọc, tạo mới, cập nhật, bỏ qua và bị lỗi. Người dùng cần tải danh sách lỗi để sửa.

Hai tuyến xử lý tách biệt cho lô dữ liệu nguyên khối và từng bản ghi độc lập

Quy tắc trùng phải được chốt trước khi dev. Trùng theo email, mã khách hàng hay một tổ hợp trường? Khi thấy bản ghi cũ, hệ thống cập nhật, bỏ qua hay yêu cầu người dùng chọn? "Ghi đè tất cả" có thể làm mất dữ liệu đã được bổ sung trong sản phẩm.

Nếu nguồn nhập thường xuyên thay đổi, hãy xem cách thiết kế trạng thái công việc. Khi CSV là bước chuyển tiếp trước một tích hợp, cần chốt đặc tả API cho dữ liệu và lỗi.

Checklist nghiệm thu chức năng nhập CSV

Dữ liệu và kiểm tra

  • Tệp sai định dạng, bảng mã hoặc giới hạn bị từ chối với lý do rõ ràng.
  • Trường bắt buộc và mã định danh được kiểm tra theo quy tắc đã duyệt.
  • Giá trị có số 0 ở đầu không bị đổi ngoài ý muốn.
  • Lỗi được gắn với đúng số dòng và tên cột.

Ghi dữ liệu và khôi phục

  • Gửi lại cùng tệp không tạo bản ghi trùng ngoài quy tắc.
  • Người dùng biết bản ghi nào được tạo, cập nhật, bỏ qua hoặc thất bại.
  • Lần nhập bị gián đoạn có thể chạy lại an toàn.
  • Nhân sự có quyền phù hợp mới được xác nhận ghi dữ liệu.

Cần lưu gì sau mỗi lần nhập?

Sản phẩm nên giữ tên tệp, người thực hiện, thời điểm, cấu hình ánh xạ, trạng thái và số lượng kết quả. Chỉ lưu dữ liệu lỗi cần cho việc sửa. Không nên giữ vô thời hạn tệp gốc chứa thông tin khách hàng.

Một kho lưu trữ trung tâm nhận dữ liệu sau lớp xác nhận và vùng khôi phục

Mỗi lần nhập và từng dòng cần có mã định danh. Nếu kết nối ngắt sau khi một phần dữ liệu đã được ghi, hệ thống phải nhận ra phần đã hoàn tất. Đây là nguyên tắc trong bài thiết kế retry và idempotency cho quy trình tự động, áp dụng ở cấp lô dữ liệu.

MVP chưa cần hỗ trợ mọi biến thể Excel, công thức, nhiều sheet hoặc quy tắc biến đổi tùy ý. Phiên bản đầu nên phục vụ vài nguồn quan trọng với điều kiện rõ. Phạm vi tiếp theo sẽ dựa trên lỗi và nguồn nhập được ghi nhận khi sử dụng.

Nếu chức năng nhập CSV ảnh hưởng tới cấu trúc dữ liệu chính, dịch vụ phát triển sản phẩm của Auranium có thể hỗ trợ chốt phạm vi, trạng thái, tiêu chí nghiệm thu và thiết kế kỹ thuật trước khi xây.