Tôi cần giải pháp sạch và hiệu quả nhất cho trường hợp của mình. Tôi đang cố gắng để lưu trữ Marks của học sinh trong một DB MySQL. Một sinh viên có thể là "ABSENT" hoặc "COPY CASE", tôi muốn lưu trữ thông tin đó cũng trong DB.Lưu trữ Enums trong Cơ sở dữ liệu MySQL
Tôi đã nghĩ đến việc chỉ định mã cho trường hợp trên như -1 cho ABSENT, -2 cho COPY CASE, v.v. Mã này sẽ chỉ được lưu trữ trong cột Đánh dấu.
Hơn bao giờ hết, khi đọc chúng với truy vấn chọn, tôi sẽ nhận được giá trị hiển thị của chúng, tức là chỉ ABSENT
, COPY CASE
, v.v.
Tất cả những điều này có thể đạt được ở cuối DB không?
Hoặc tôi có cần thực hiện những việc này ở cấp Ứng dụng không?
Có bất kỳ API nào có sẵn cho Java cho chức năng như vậy không?
Chỉ cần một lưu ý rằng, mặc dù tôi không đồng ý với Sanjay rằng việc sử dụng [kiểu dữ liệu] (http://dev.mysql.com/doc/ refman/5.0/en/integer-types.html) đại diện cho enum nói chung là hiệu quả hơn việc sử dụng [string types] (http://dev.mysql.com/doc/refman/5.0/en/char.html) (hiệu suất và không gian khôn ngoan), Enum loại là một ngoại lệ, nó sẽ sử dụng một 16 bit unsigned (ngắn) nội bộ để lưu trữ các giá trị hiệu quả, và tôi không bao giờ có vấn đề hiệu suất với nó cả. –