Dùng SET datatype để validate trong MySQL

BBMCode đã đăng vào lúc 08:07:20 03/07/2023 | đọc khoảng 3 phút, có 415 từ

Trong MySQL chúng ta thấy có thể tạo column với kiểu dữ liệu là SET.

Vậy kiểu dữ liệu SET là gì?

SET là kiểu dữ liệu dạng string object, cho phép chúng ta khai báo sẵn tập values của column.

 

Tập values  này có thể chứa tối đa 64 items và giá trị của column đó có thể là một hoặc nhiều lựa chọn trong các items được SET sẵn kia.

 

Nghe có vẻ rườm rà khó hiểu, chỉ cần lướt qua ví dụ sẽ rõ ngay.

Ví dụ mình có table user cấu trúc như sau:

 

Column roles có kiểu dữ liệu là SET. Và các giá trị có thể set cho nó là: admin, mod, member

Một số trường hợp insert dữ liệu cho table user sẽ như sau:

 

 

✴️ Ở 2 lần insert cuối cùng, mình đã cố tình truyền value vào không nằm trong tập dữ liệu SET.

Value không hợp lệ là 'root' và 'hack'. MySQL đã báo lỗi ngay.

 

✳️ Như vậy, dựa vào đặc điểm của kiểu dữ liệu SET, chúng ta có thể vận dụng nó để thiết kế các columns chỉ nhận vài giá trị set sẵn.

 

Rất hữu ích trong các trường hợp như roles, danh sách quốc gia, danh sách các môn học cho phép insert vào chẳng hạn. Chúng ta sẽ lấy MySQL làm bước chặn cuối cùng để tránh những dữ liệu không hợp lệ.

 

Cảm ơn các bạn đã đọc!