교리 2 + 부호없는 값
unsigned integer
교리 2에서 열 유형을 지정할 수 있습니까?
당신은 할 수 있지만 이식성을 잃을 것입니다. columnDefinition
속성을 사용 하고로 설정하십시오 integer unsigned
. 실제 코드는 사용중인 항목에 따라 다릅니다.
columnDefinition : 열 이름 뒤에서 시작하고 완전한 (이동 불가능!) 열 정의를 지정하는 DDL SQL 스 니펫. 이 속성을 통해 고급 RMDBS 기능을 사용할 수 있습니다. 그러나이 기능과 그 결과를주의 깊게 사용해야합니다. "columnDefinition"을 사용하면 SchemaTool이 더 이상 열의 변경 사항을 올바르게 감지하지 못합니다.
/ ** * @ORM \ Column (name = "id", type = "integer", options = { "unsigned"= true}) * /
이것에 대해 말하는 문서 (내가 본)는 없지만 작동합니다.
최신 정보
Yaml의 정의 (기본 키의 경우 2.4 기준)
id:
type: integer
options:
unsigned: true
소수는 이러한 큰 숫자를 허용하고 SchemaTool을 유지할 수 있도록합니다. 스케일을 0으로 설정하기 만하면됩니다.
<?php
/**
* @Column(type="decimal", precision=20, scale=0, nullable=false, unique=true)
*/
Protected $facebookId;
여기 에서 이유에 대한 전체 글을 확인 하십시오 . [편집] (링크가 작동하지 않음) 아래 기사를 붙여 넣었습니다. 어쨌든 저에 의해 작성되었습니다.)
부호없는 숫자가 너무 커서 뇌가 폭발 할 것입니다! 교리 2 포함
ORM에는 고유 한 문제가 있습니다. 일부 RDBMS가 지원하는 데이터 유형을 어떻게 사용하고 어쨌든 사용하도록 허용합니까? 교리 2와 부호없는 숫자에 관해서는 조금 게으르다.
내가 원하는 것은 64 비트 페이스 북 ID를 저장하는 것뿐입니다. 얼마나 힘들어요? 내 RDBMS는 mySQL이므로 서명되지 않은 bigint 만 있으면됩니다.
<?php
/**
* @Column(type="bigint", nullable=false, unique=true, columnDefinition="unsigned")
*/
Protected $facebookId;
이것을 읽을 때까지 이것은 발견하고 멋지게 보입니다.
columnDefinition : 열 이름 뒤에서 시작하고 완전한 (이동 불가능!) 열 정의를 지정하는 DDL SQL 스 니펫. 이 속성을 통해 고급 RMDBS 기능을 사용할 수 있습니다. 그러나이 기능과 그 결과를주의 깊게 사용해야합니다. "columnDefinition"을 사용하면 SchemaTool이 더 이상 열의 변경 사항을 올바르게 감지하지 못합니다. 기본적으로이 기능을 사용하면 지원되지 않는 항목을 열 정의에 자유롭게 구성 할 수 있습니다. 기술적으로 지원되지 않는 부호없는 숫자 만들기! 내 개발 및 QA 배포 시스템은 SchemaTool에 크게 의존하고 있습니다. 이 미친 마을의 작은 덩어리에 대해 Doctrine과 sqlite3의 게으른 개발자의 조합에 감사드립니다.
이것은 즉시 Google 검색을 시작했습니다. 나는 내가 할 필요가 없다면 생각하는 것을 좋아하지 않는다. 내가 뭘 찾았 지? 모두가 varchars를 사용하고 있습니다. VARCHARS!?!? 나는 심장 마비를 겪었다. 그건 용납 할 수없는 일이었습니다.
따라서 십진수를 입력합니다. 그것은 완벽. 저장소 크기는 가변적이며 바이너리로 저장되므로 인덱싱이 매우 빠릅니다. 십진수 정밀도를 0으로 설정하고 보일로 설정했습니다. ORM은이를 모든 RDBMS로 이식 할 수 있으며 지원되지 않는 서명 / 서명되지 않은 문제에 대해 신경 쓰지 않아도 될만큼 크고 매우 빠릅니다. decimal (20,0)은 우리의 페이스 북 크기 인 1,800 경 400 조 760 억 770 억 770 억 7000 억 550 만 6 백 15 십억을 아주 멋지게 처리해야합니다.
<?php
/**
* @Column(type="decimal", precision=20, scale=0, nullable=false, unique=true)
*/
Protected $facebookId;
교리 1 문서 와 교리 2 문서 는 다음 과 같은 방법으로 할 수 있다고 말했습니다.
PHP 주석 :
/**
* @Column(type="integer", name="some_field" options={"unsigned":true})
*/
protected $someField;
Yaml : ( 문서 참조 )
MyEntity:
fields:
someField:
type: integer
column: some_field
options:
unsigned: true
이것이 시간을 절약하는 데 도움이되기를 바랍니다.)
참고 URL : https://stackoverflow.com/questions/7692686/doctrine-2-unsigned-value
'IT TIP' 카테고리의 다른 글
비동기 API를 단위 테스트하는 방법은 무엇입니까? (0) | 2020.11.19 |
---|---|
UIView는 경계를 벗어날 때 자식 뷰를 숨 깁니다. (0) | 2020.11.19 |
Bash 스크립트에서 키-값 쌍을 만드는 방법이 있습니까? (0) | 2020.11.19 |
iOS 11에서 스크롤하지 않고 탐색 막대에 검색 막대 표시 (0) | 2020.11.19 |
Linux에서 memcpy 성능 저하 (0) | 2020.11.05 |