1. ID là gì ?
ID là viết tắt của cụm từ "Identification" nghĩa là "sự nhận diện". Nhìn vào ID của một công dân ta có thể phân biệt được người này với người khác, tương tự thông qua ID, người ta có thể phân biệt được phiếu này với phiếu khác cũng như nhanh chóng tìm thấy chúng và lấy chúng ra từ trong hàng trăm túi phiếu khách nhau.
Vì thế, ID cần đảm bảo rằng:
- (1) Mỗi phiếu hỏi chỉ nên có duy nhất một ID và
- (2) ID chứa các thông tin không trùng lặp với bất cứ một cột dữ liệu nào xuất hiện trong phiếu hỏi
Với những người chưa có kinh nghiệm làm việc với data, cách làm thường thấy là tạo ra các ID có cấu trúc đơn giản như đặt theo số thứ tự. Phiếu làm đầu tiên là 1, phiếu tiếp theo là 2, phiếu cuối là 332 và cứ như thế - dạng ID này gọi là ID một lớp (1 lớp thông tin là số thứ tự).
Cách làm này tuy thực hiện rất nhanh chong, song nếu trong phiếu hỏi có những cầu đòi hỏi các thông tin nhập vào cũng là số nguyên (như tuổi, chiều cao, cân nặng ...) thì quá trình phân tích rất có thể sẽ xảy ra nhầm lẫn.
Để giảm thiếu các nhầm lẫn khi tạo ID, ta nên tăng thêm lớp thông tin cho chúng.
2 - ID 2 lớp
Cách thức để tạo ra các ID hai lớp thực ra cũng rất đơn giản với bản chất là sự kết hợp giữa 02 lớp thông tin gồm ký số (numeric) và ký tự (character). Trong đó (1) Ký số = số thứ tự của phiếu và (2) Ký tự = chữ viết tắt tên của khảo sát viên (KSV).
Giả sử như, trong nhóm khảo sát có ba người là: Long, Minh, Châu. Ta quy ước: (1) Long = 'LO' ; Minh = 'MI' & Châu = 'CH'. Kế đến là (2) một dấu gạch nối " - " nhằm ngăn cách giữa ký tự và ký số. Cuối cùng, vì (3) ký số chính là thứ tự của phiếu, như vậy, nếu phiếu đầu tiên của Long là "LO + 1", thì phiếu tiếp sẽ là "LO + 2", và cứ như thế cho tới hết.
Lúc này danh sách ID sẽ có dạng:
---
- Long = [LO] => LO-01, LO-02, LO-03 ... LO-345
- Minh = [MI] => MI-01, MI-02, MI-03 ... MI-124
- Châu = [CH] => CH-01, CH-02, CH-03 ... CH-231
---
Với cách làm này, các ID sẽ không bao giờ bị trùng nhau và dù thứ tự nhập liệu của mỗi người khác nhau, theo các khung thời gian khác nhau - thì mỗi khi cần tổng hợp lại phiếu của một người nào đó, ta chỉ cần sử dụng 2 ký tự đầu là đã có thể lọc được toàn bộ những phiếu do người này nhập.
Lưu ý: Cần nhất quán cách trình bày này với tất cả thành viên trong nhóm khảo sát của bạn và đảm bảo rằng mọi người đều hiểu đúng theo cùng một nghĩa. Không ít lần sinh viên của mình hiểu nhầm rằng tên của họ được quy ước là 'VA' nên đã đánh toán bộ tất cả các phiếu hỏi của họ thành một mã duy nhất là, Vd: VA-01 ;
Quả là một thảm họa !
3 - ID nhiều lớp
Với các khảo sát lớn, người ta có thể cân nhắc tới một dạng ID phức tạp hơn nữa được kết hợp từ lớp chiều thông tin lại cùng một lúc.
Ví dụ như người đứng đầu cuộc khảo sát yêu cầu rằng họ chỉ cần nhìn vào ID là biết được phiếu hỏi này do: (1) nhóm nào làm [Nhóm], (2) người nào làm [KSV], (3) làm ở đâu [Địa điểm], (4) làm vào ngày nào [Ngày], và (5) ai là điều phối giám sát [Điều phối] như vậy là có tổng cộng 5 lớp thông tin
Thông thường, 5 lớp thông tin kia sẽ được nhập vào nằm trong 5 cột dữ liệu. Tuy nhiên các cột dữ liệu này có thể sẽ không nằm gần nhau, việc di chuyển lại giữa các cột sẽ tốn nhiều thời gian mà người quản lý thì lại không thích việc này. Vì thế, một ID gồm tất cả thông tin trên sẽ giúp người quản lý có được thông tin mà họ cần một cách vô cùng nhanh chóng bất chấp một sự thật là khi ấy, ID nhiều chiều sẽ là một chuỗi ký tự khá dài.
Hãy tưởng tưởng ta có các thông tin kể trên như sau:
---
- [Nhóm] = Nhóm 1, Nhóm 2, Nhóm 3
- [KSV] = Hiệp Sỹ, Ngọc Oanh, Khánh Xuân, Minh Đăng
- [Địa điểm] = phường An Cựu, phường Trường An, phường Phú Nhuận và phường Đông Ba
- [Ngày] = ngày 02.02, ngày 03.02, ngày 04.02 và ngày 05.02
- [Điều phối] = Tuấn Long & Hữu An
Ta sẽ quy ước như sau:
---
- [Nhóm] => Nhóm 1 = 'N1' ; Nhóm 2 = 'N2' ; Nhóm 3 = 'N3'
- [KSV] => Hiệp Sỹ = 'HS' ; Ngọc Oanh = 'NO', Khánh Xuân = 'KX', Minh Đăng = 'MD' ...
- [Địa điểm] => phường An Cựu = 'AC', phường Trường An = 'TA', phường Phú Nhuận = 'PN' và phường Đông Ba = 'DB' ...
- [Ngày] => ngày 02.02 = '02', ngày 03.02 = '03', ngày 04.02 = '04' và ngày 05.02 = '05' (vì tất cả đều làm trong tháng 02 nên yếu tố tháng trong ID này không còn quan trọng
- [Điều phối] => Tuấn Long = 'TL' & Hữu An = 'HA'
---
Lúc này, mọi thứ đã trở nên có cấu trúc hơn. Lúc này nếu bên quản lý nhìn vào ID có nội dung, ví dụ:
- "N1-NO-AC-02-TL-067" sẽ hiểu rằng: phiếu này do Nhóm 1 thực hiện, KSV là Ngọc Oanh, làm tại phường An Cựu hôm 02.02 và được anh Tuấn Long giám sát.
- "N2-MD-DB-04-HA-103" sẽ hiểu rằng: phiếu này dó Nhóm 2 thực hiện, KSV là Minh Đăng, làm tại phường Đông Ba hôm 04.02 và được anh Hữu An giám sát
Tuy tỏ ra hữu ích về mặt thông tin, song ID nhiều chiều lại là dạng ID mà mình không khuyến khích các bạn sử dụng vì:
- (1) Sự phức tạp về cấu trúc có thể khiến các khảo sát viên vất vả khi tạo ID,
- (2) Người nhập phiếu cũng sẽ phải gõ rất nhiều các ký tự rời rạc nhưng lại đòi hỏi phải nhất quán 100% có thể dẫn đến sự nhầm lẫn và
- 3) Giả sử nếu chính người quản lý cũng quên với các quy ước của mình - thì việc tạo ID như thế này chính là "lợi bất cập hại"
Vì thế, trừ phi là do yêu cầu của bên đặt hàng, hay do bạn có khả năng đọc mã số tốt, còn theo kinh nghiệm của bản thân mình thì ID tối ưu hơn cả vẫn là ID hai chiều:
4 - Độ dài của ID
Tất cả các ID nên có độ dài (length) bằng nhau, để khi nhìn từ trên xuống sẽ thấy ID là một cột thông tin đều tăm tắp, tạo cảm giác nhất quán và cũng thuận tiện cho mắt nhìn hơn khi làm việc với một bộ dữ liệu có cấu trúc
1/. Tính thẩm mỹ
ID không những cần sự ngắn gọn, rõ ràng mà cũng rất cần sự nhất quán về hình ảnh và mỹ quan.
Như ví dụ đã đưa ra ở: phiếu thứ 67 được mình viết là "067" thay vì chỉ là "67", bởi vì toàn bộ phiếu khảo sát có thể lên đến hàng trăm phiếu (3 con số), vậy nên viết phiếu theo hàng chục (hai con số) là '67' có thể khiến 99 phiếu đầu tiên của bộ dữ liệu có độ dài ít hơn so với các phiếu còn lại.
Hình ảnh "trồi ra thụt vào" này không nên tồn tại trên cùng một bộ dataset đặc biệt là dataset của những người bị hội chứng OCD [1] =)))
2/. Quản lý dữ liệu
Kế đến, khi bạn muốn lọc thông tin từ ID, các ID có độ dài bằng nhau sẽ giúp việc lọc thông tin được diễn ra thuận lợi và chính xác hơn. Ví dụ như bạn muốn lấy toàn bộ 3 con số sau của ID, việc bạn để ID theo dạng hai con số và ba con số có thể sẽ đem lại hai kết quả hoàn toàn khác nhau.
Trong ví dụ dưới, mình sử dụng hàm ' =RIGHT() ' trên Excel để lấy ra 3 con số bên phải của ID. Tuy nhiên, các giá trị âm đã xuất hiện trong bảng xanh bởi máy tính đã không tin thấy đủ 3 ký số ở cột data của bảng này và đây là điều mà không một ai muốn mong đợi .
---
Như vậy là mình đã chia sẻ một số cách tạo ID cơ bản trong khảo sát bằng bảng hỏi. Các bạn cũng có thể áp dụng cách làm tương tự với các dạng dữ liệu khác như bản gỡ băng phỏng vấn sâu, thảo luận nhóm, phiếu quan sát hay kể cả tạo danh mục tài liệu tham khảo hoặc thư mục sách trong thư viện ...
Hay như đây là một bản đồ dự án điện gió tại huyện Hướng Hóa, Quảng Trị mà mình đã xây dựng trong chuyến khảo sát kinh tế - xã hội năm 2022. Do quy mô của dự án khá lớn với nhiều hợp phần, nên trong bản đồ này mình đã sử dụng cách đặt ID ba lớp. Các bạn click vào các icon vị trí trên bản đồ thì sẽ xem được một số thông tin cơ bản của dự án do chính nhóm khảo sát cập nhật vào.
(Bạn có thể xem bản đồ tại đây) [2]
Nói cách khác, bất cứ khi nào làm việc với dữ liệu có cấu trúc đòi hỏi cần có yêu cầu tổ chức cao, hãy chú ý tới việc tạo ID nhất quán, logic và tối ưu.
Chúng sẽ giúp bạn rất nhiều trong tìm kiếm, phân biệt và lưu trữ !!!
---
Chú thích:
[1] Mình đã làm test và xác định thuộc hội chứng OCD vào khoảng 60%, chỉ số ... khá cao
[2] Vì đây là một sản phẩm của Google, nên sau khi click vào đường link, các bạn cần Sigin vào trước thì mới xem được các thông tin trên bản đồ