Mỗi trường cần kiểu phù hợp
**Kiểu dữ liệu** quy định dạng giá trị của một trường. Với bảng Bản thu giả định, **Mã bản thu** như `R03` là văn bản; **Ngày thu** là ngày; **Thời lượng giây** như `185` là số nguyên; **Điểm chất lượng** như `8,5` là số thập phân theo quy ước của bộ dữ liệu. Nhờ kiểu phù hợp, hệ thống có thể hỗ trợ kiểm đầu vào và thực hiện phép tính đúng ý nghĩa.
Mã bài `0001` tuy chỉ gồm chữ số vẫn nên lưu như **văn bản** nếu bốn kí tự, kể cả số 0 đầu, là phần của mã. Nếu coi là số nguyên 1 rồi hiển thị lại, có thể mất dạng mã `0001`. Ngược lại, thời lượng giây cần là số để so sánh hoặc cộng tổng thời lượng.
Kiểu và quy tắc là hai việc khác nhau
Chọn kiểu số nguyên cho Thời lượng giây giúp loại giá trị chữ như `abc`, nhưng tự nó chưa bảo đảm thời lượng lớn hơn 0; muốn kiểm điều ấy phải đặt thêm **quy tắc**. Chọn kiểu ngày cho Ngày thu cũng chưa chứng minh ngày được nhập đúng với sự kiện thực tế.
Ví dụ, hai bản thu R01 và R03 cùng tham chiếu bài K01. Mỗi bản vẫn cần Mã bản thu riêng vì một bài có thể có nhiều lần thu, kể cả do cùng một ca sĩ. Chỉ ghép Mã bài với Mã ca sĩ sẽ không luôn phân biệt các lần thu; nếu cần, phải thêm mã lần thu hoặc dùng mã bản thu riêng. Đây là quyết định thiết kế theo dữ liệu cần quản lí.
Bài luyện
Mã bài “0001” cần giữ đủ bốn kí tự. Nên chọn kiểu nào?
Số nguyên 1 không giữ dạng mã 0001.
Mã là nhãn định danh, bốn kí tự đều có ý nghĩa.
Chuỗi 0001 không biểu thị một ngày.
Mã không phải giá trị đúng/sai.
Lời giải
Yêu cầu là giữ nguyên bốn kí tự của mã “0001”, gồm cả ba số 0 đầu. Kiểu văn bản phù hợp; không cần tính toán số học với mã.
Bài luyện
Trường Thời lượng giây lưu 185 và dùng để cộng thời lượng các bản thu. Kiểu nào phù hợp nhất?
Văn bản không thể hiện trực tiếp phép cộng thời lượng.
185 là số giây, không phải ngày.
Số giây nguyên dùng được cho phép tính.
Đúng/sai chỉ có hai trạng thái.
Lời giải
Thời lượng được đo bằng số giây nguyên và cần cộng được. Vì vậy dùng kiểu số nguyên; có thể đặt thêm quy tắc giá trị phải dương.
Bài luyện
Nếu cùng một ca sĩ thu lại cùng một bài vào ngày khác, cách nào vẫn phân biệt được hai bản thu?
Hai lần thu có thể cùng cặp mã.
Tên ca sĩ không xác định lần thu.
Không cần xóa dữ liệu hợp lệ.
Mỗi lần thu có mã riêng nên xác định được từng bản ghi.
Lời giải
Hai bản thu có thể cùng bài và ca sĩ nhưng là hai lần thu khác nhau. Mã bản thu riêng như R01, R04 sẽ phân biệt được chúng.
Đang học