Tôi cần lời khuyên về cách xử lý các nhóm cờ tương đối lớn trong bảng SQL2k8 của tôi.Cách xử lý nhiều cờ cho bản ghi SQL
Hai câu hỏi, hãy liên hệ với tôi, vui lòng :)
Giả sử tôi có 20 lá cờ tôi muốn lưu trữ một bản ghi.
Ví dụ:
CanRead = 0x1 CanWrite = 0x2 CanModify = 0x4 ... và vân vân để lá cờ chính thức 2^20
Bây giờ, nếu tôi đặt sự kết hợp sau đây một bản ghi: Quyền = CanRead | CanWrite
tôi có thể dễ dàng kiểm tra xem kỷ lục đó đã yêu cầu sự cho phép bằng cách làm WHERE (Quyền & CanRead) = CanRead
đó làm việc.
Nhưng, tôi cũng muốn truy xuất tất cả các bản ghi có thể viết hoặc sửa đổi.
Nếu tôi phát hành WHERE (Quyền & (CanWrite | CanModify)) = (CanWrite | CanModify) tôi rõ ràng sẽ không nhận được hồ sơ của tôi có quyền được đặt thành CanRead | CanWrite
Nói cách khác, làm cách nào tôi có thể tìm thấy các bản ghi khớp với BẤT K of cờ trong mặt nạ mà tôi đang gửi đến quy trình?
Câu hỏi thứ hai, hiệu suất hoạt động trong SQL 2008 như thế nào? Nó sẽ thực sự tốt hơn để tạo ra 20 trường bit?
Nhờ sự giúp đỡ của bạn
-1 vì lôgic VÀ/HOẶC không giống như bitwise &/|. –
Đó là nếu như áp phích được đề xuất, mỗi trường chỉ có một bit. –
Lấy ví dụ này là một ví dụ về mệnh đề where đơn giản, tất cả những gì bạn cần khi xử lý các giá trị bit. Ý định của tôi là không tái tạo một truy vấn cụ thể. – VVS