Tôi đang tạo ứng dụng dành cho thiết bị di động Tôi sử dụng PHP & MySQL để viết một chương trình phụ trợ - REST API.Làm thế nào để lưu trữ 60 Booleans trong một cơ sở dữ liệu MySQL?
Nếu tôi phải lưu trữ khoảng 50-60 giá trị Boolean trong bảng có tên "Báo cáo" (người dùng phải kiểm tra mọi thứ trong biểu mẫu) trong ứng dụng di động của tôi, tôi lưu giá trị (0/1) trong một mảng đơn giản. Trong MySql Table của tôi tôi nên tạo một cột khác nhau cho mỗi giá trị Boolean hoặc là nó đủ nếu tôi chỉ đơn giản là sử dụng một chuỗi hoặc một Int để lưu trữ nó như là một "số" như "110101110110111 ..."?
Tôi lấy và đặt dữ liệu bằng JSON.
CẬP NHẬT 1: Tất cả những gì tôi phải làm là kiểm tra nếu mọi thứ là 1, nếu một trong số đó là 0 thì đó là "sự cố". Trong 2 năm, bảng này sẽ có khoảng 15.000-20.000 hàng, nó phải rất nhanh và tiết kiệm không gian càng tốt.
CẬP NHẬT 2: Xét về tốc độ giải pháp nào nhanh hơn? Tạo các cột riêng biệt và lưu trữ nó trong một chuỗi/kiểu nhị phân. Nếu tôi phải kiểm tra xem cái nào là 0? Đó có phải là giải pháp tuyệt vời nếu tôi lưu trữ nó dưới dạng "số" trong một cột và nếu không phải là "111..111" thì gửi nó đến ứng dụng dành cho thiết bị di động dưới dạng JSON nơi tôi phân tích giá trị và phân tích giá trị trên thiết bị của người dùng? Hãy nói rằng tôi phải đối phó với 50K hàng.
Xin cảm ơn trước.
Nếu bạn cần tìm kiếm (sử dụng các công cụ như 'WHERE bool_a AND NOT bool_b') trên các giá trị của những lá cờ này, điều đó sẽ đẩy bạn lưu chúng vào cột riêng của chúng. Nhưng bạn chưa cho chúng tôi biết ứng dụng của bạn cần sử dụng dữ liệu này như thế nào. –
Bạn nói đúng. Tất cả những gì tôi phải làm là kiểm tra nếu mọi thứ là 1, nếu một trong số đó là 0 thì đó là một "vấn đề". Trong 2 năm, bảng này sẽ có khoảng 15.000-20.000 hàng, nó phải rất nhanh và tiết kiệm không gian càng tốt. – nethuszar
Bạn có thể đi với cờ, nếu bạn là một trăm phần trăm chắc chắn bạn không cần phải thêm công cụ ở giữa. Bạn có thể sử dụng kiểu BINARY cho điều đó. – MartijnK