Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để lưu trữ một mảng các giá trị boolean trong cơ sở dữ liệu MySql?

Nếu bạn đang tìm cách thực hiện việc này theo cách có thể tìm kiếm được, thì không.

Một số phương pháp có thể tìm kiếm (liên quan đến nhiều hơn 1 cột và / hoặc bảng):

  • Sử dụng nhiều SET cột. Bạn bị giới hạn ở 64 mục (bật / tắt) trong một bộ, nhưng bạn có thể tìm ra cách để nhóm chúng.
  • Sử dụng 3 bảng:Mục (id, ...), FlagNames (id, tên) và bảng tổng hợp ItemFlags (item_id, flag_id). Sau đó, bạn có thể truy vấn các mục có tham gia .

Nếu bạn không cần nó có thể tìm kiếm được, thì tất cả những gì bạn cần là một phương pháp để tuần tự hóa dữ liệu của bạn trước khi bạn đưa nó vào cơ sở dữ liệu và hủy số hóa nó khi bạn kéo nó ra, sau đó sử dụng cột char hoặc varchar.

  • Sử dụng các tiện ích được tích hợp sẵn cho ngôn ngữ của bạn (số tự hóa / không đăng ký của PHP).
  • Nối một loạt các ký tự "y" và "n" với nhau.
  • Đóng gói từng bit các giá trị của bạn thành một chuỗi (8 bit cho mỗi ký tự) trong ứng dụng khách trước khi thực hiện cuộc gọi đến cơ sở dữ liệu MySQL và giải nén chúng khi truy xuất dữ liệu từ cơ sở dữ liệu. Đây là cơ chế lưu trữ hiệu quả nhất (nếu tất cả các hàng đều giống nhau, hãy sử dụng char [x], không phải varchar [x]) với điều kiện dữ liệu không thể tìm kiếm được và mã phức tạp hơn một chút.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để gửi mọi người ở các trang khác nhau với mysql

  2. chọn tổng qty từ 2 bảng

  3. Tìm kiếm toàn văn Django MySQL

  4. Phiên Php và đăng sự cố trong trang đăng nhập

  5. Cập nhật truy vấn để cập nhật hàng trong MySQL