2012-04-27 2 views
10

저는 최근에 Symfony2와 doctrine2를 사용하여 DC2Type이라는 고유 한 데이터 유형을 구현했습니다 : 특정 Symfony2 역할이 저장되는 배열. 나에게 그것은 직렬화 된 PHP 배열처럼 보이는데, 여기서 a는 총 요소 수를 의미한다. 배열 인덱스이다.mysql에서 DC2Type 배열 데이터 유형은 무엇입니까

값은 다음과 같습니다

a:15:{i:0;s:32:"ROLE_SONATA_USER_ADMIN_USER_EDIT";i:1;s:32:"ROLE_SONATA_USER_ADMIN_USER_LIST";i:2;s:34:"ROLE_SONATA_USER_ADMIN_USER_CREATE";i:3;s:32:"ROLE_SONATA_USER_ADMIN_USER_VIEW";i:4;s:34:"ROLE_SONATA_USER_ADMIN_USER_DELETE";i:5;s:36:"ROLE_SONATA_USER_ADMIN_USER_OPERATOR";i:6;s:34:"ROLE_SONATA_USER_ADMIN_USER_MASTER";i:7;s:33:"ROLE_SONATA_USER_ADMIN_GROUP_EDIT";i:8;s:33:"ROLE_SONATA_USER_ADMIN_GROUP_LIST";i:9;s:35:"ROLE_SONATA_USER_ADMIN_GROUP_CREATE";i:10;s:33:"ROLE_SONATA_USER_ADMIN_GROUP_VIEW";i:11;s:35:"ROLE_SONATA_USER_ADMIN_GROUP_DELETE";i:12;s:37:"ROLE_SONATA_USER_ADMIN_GROUP_OPERATOR";i:13;s:35:"ROLE_SONATA_USER_ADMIN_GROUP_MASTER";i:14;s:10:"ROLE_ADMIN";} 

내가이 데이터 형식이 무엇인지 알고 싶어?

그리고 일을 다음과 같은 식별자는 의미 : 나는 인터넷을 검색했지만 유용한 데이터가 없어

s: 

.

나는 또한이 요리 책 엔트리 - http://readthedocs.org/docs/doctrine-orm/en/2.0.x/cookbook/mysql-enums.html에 부딪 쳤지 만 출처를 알아 내지 못했습니다.

답변

24

이것은 데이터 유형이 아닙니다. 열 유형이 LONGTEXT임을 알 수 있습니다. DC2Type : array는 필드의 주석입니다.

Doctrine은 필드의 주석을 열의 메타 데이터 저장 위치로 사용합니다. Mysql은 배열을 저장할 수 없기 때문에 Doctrine은 내용을 비 직렬화하는 방법을 알기 위해 DC2Type : array를 주석으로 사용합니다.

아래 링크를 참조하십시오. enumvisibility 필드의 내용이 기록이 보이거나 아님을 나타내는 플래그을 나타냅니다 : 당신이 언급 한 링크에서

https://github.com/doctrine/dbal/issues/1614

, 당신은 코멘트 DC2Type는 것을 볼 수 있습니다. 전혀 새로운 데이터 유형은 아닙니다. 데이터베이스 수준에서 도우미 전략으로 간주되어야합니다. Doctrine의 경우 사용자 정의 데이터 유형입니다.

9

이것은 단순히 문자열입니다. 형식은 직렬화 된 PHP 배열입니다. s :는 배열의 각 항목 값의 크기 또는 길이를 나타냅니다. 당신이 역할 문자열에서 문자를 계산하면

e.g. s:32:"ROLE_SONATA_USER_ADMIN_USER_EDIT"

이 도움이 (32)

희망이 있습니다.

관련 문제