직렬화 된 객체를 저장하지 마십시오. 액세스 속도가 느리고 (검색, 직렬화 해제) 검색이 더 어렵습니다.
상대적으로 적은 수의 작업이고 부울 경우 비트 마스크 (잘못된 용어 일 수 있음)로 저장할 수 있습니다.
1 = first_login
2 = profile_complete
4 = other_thing_complete
8 = other_thing2_complete
16 = other_thing3_complete
...
값 10은 profile_complete + other_thing2_complete를 의미합니다. http://dev.mysql.com/doc/refman/5.0/en/bit-functions.html을 보거나 검색하십시오. 당신이 볼 수 있듯이
이
mysql> select 10&2;
+------+
| 10&2 |
+------+
| 2 |
+------+
1 row in set (0.00 sec)
mysql> select 10&8;
+------+
| 10&8 |
+------+
| 8 |
+------+
1 row in set (0.01 sec)
mysql> select 10&1;
+------+
| 10&1 |
+------+
| 0 |
+------+
1 row in set (0.00 sec)
mysql> select 10&4;
+------+
| 10&4 |
+------+
| 0 |
+------+
1 row in set (0.00 sec)
mysql> select 10&16;
+-------+
| 10&16 |
+-------+
| 0 |
+-------+
1 row in set (0.00 sec)
첫 번째 두 쿼리는 필드 가 8가 AND로 기록을 검색하는 경우 즉, 영이 아닌 값을 반환 other_thing2_complete이 완료 위치를 모든 레코드를 얻을 비 - 제로 other_thing2_complete를 true로 설정하려면 단순히 8을 추가하면됩니다. other_thing2_complete를 false로 설정하려면 간단히 8을 빼십시오.
예견하지 않으므로 내가 예상하지 못한 문제가 발생할 수 있습니다. 그러나 추적하고있는 모든 활동이 부울 값이라면 트릭을 수행하고 최상의 검색/업데이트가 가능해야합니다.
출처
2010-05-07 23:51:44
Sid
이렇게하면 한 행을 사용하는 목적을 무효화 할 수 있습니다. :) –
아 ... 내 잘못이야. 하나의 행으로 제한하는 이유는 무엇입니까? – someoneinomaha
하나의 값을 반환하여 많은 액티비티에 대해이 작업을 수행 할 수 있다는 것은 멋지다고 생각했습니다. –