내 테이블에 휴가 위치 목록이 포함 된 다수의 부울 필드가 있습니다. 데이터가 아약스에 의해 브라우저에서 가져오고 나는 많은 모바일 사용자를 가지기를 바라고, 비트 연산자로 사용할 정수로 결합했습니다. 너무 많은 필드가 있기 때문에 (32 개 이상) 필자는 필드를 그룹화하고 각 그룹에 대해 정수를 생성해야했습니다. 그래서 난 내 데이터 테이블에 추가 필드에서 그 정수를 저장비트 단위 데이터 유지 보수하기
[
things: int("100"),
animals: int("10")
]
같은 것을 매핑됩니다
[ hasCar: 1, hasBoat: 0, hasTree: 0, hasCat: 1, hasHorse: 0]
(간단한 의사 코드 (실제로 PHP)를 사용하고 있습니다). 이것의 문제점은 매우 융통성이 없다는 것입니다. 예 : 부울 필드를 그룹화하는 방법을 변경하거나 모든 부울 필드를 그룹화하는 방법을 변경하면 모든 정수를 다시 생성하고 각 항목의 데이터를 덮어 씁니다.
효율적이고 유지 보수가 용이 한 방식으로 비트 단위 데이터 생성을 처리하는 방법에 대한 좋은 아이디어가있는 사람이 있습니까?
좋은 생각이지만 ... a) 필드를 재 그룹화하려는 경우 (예 : hasBoat, hasCar, hasHorse를 하나의 정수 "transport"에 넣으려는 경우와 같이 여전히 희생양이됩니다. b) 모든 부울 필드가 1 비트에서 더 큰 크기로 바뀌면 데이터베이스 크기가 대폭 증가합니다 – wheresrhys
단일 열을 사용하여 모든 값을 저장할 수 있습니다. 정수 열은 약 20 개의 값을 수용 할 수 있어야합니다. 값을 합하여 하나의 열에 넣으면됩니다. – Tushar