흠 나는 데이터베이스 아키텍처에 대해 많이 알지는 못하지만 CTO의 마음에는 무엇이 있는지 이해하지 못한다. 그러나 문자를 우리가 사용하는 모든 테이블의 기본 키. 그러나 기본 키는 여전히 다음과 같습니다. -> 1,2,3 ... 등 숫자입니다. 합성용 PK에 integer + auto_increment를 사용합니다.기본 키 값 문자 대신 int 값 1을 사용합니다.
CTO는 PK에 LIKE
조건을 사용하여 쿼리를 발행 할 수 없다고 말합니다.
- 특히 PK가 숫자 인 경우 PK 문자를 사용하는 것이 좋습니까?
- PK와 같은 조건을 사용하는 것이 맞습니까?
PS - 그래서 대신 테이블에서 가장 큰 값을 가져옵니다 그는 1을 더한 후 그 문자열 다음 저장 그것으로 그 값을 변환 자동 증가/트리거, 시퀀스 CTO 문제를 선택 쿼리.
감사합니다. 하지만 그에게 재앙이 될 것이라고 확신시켜야합니다. 나는 (이 경우 캐릭터 4 PK는) 나쁜 생각이라는 것을 가르쳤다. 그는 논쟁의 대상이 ...
1. 문자 PK는 많은 공간을 차지하지 않습니다. 당신이
"select * from employee where name like 'somename'
및 Select * from employee where id = 6
같은 것을 발행해야하기 때문에
2. 데이터베이스 쿼리 최적화는 INT 형 PK 를 사용하는 경우 쿼리를 다시 읽어해야합니다.
where 절이 변경되기 때문입니다.
우리가 사용하는 것이 강력하다고 주장한 것
"select * from employee where @columnName like @value"
그는 이렇게 말하면 쿼리 최적화 프로그램이 더 잘 실행될 것이라고 말했습니다.
그에게 마음을 바꾸기위한 유효한 이유를 증명하거나 줄 수있는 방법은 무엇입니까?
감사합니다.)
CTO는 분명히 바보입니다! –
나는 Mitch와 동의한다. CTO가 모든 숫자 인 값에 대해 'LIKE'를 사용하려는 경우 전체 PK/대리 변수 -PU 인수를 피할 수 있지만 적절한 인덱스가있는 계산 된 CHAR-ISH 열을 설정하지 않는 이유는 무엇입니까? –
물론입니다. 그녀에게 여기 와서 읽어 보라고 해. 그는 바보입니다. 대부분의 경우, 카운터 머지에서 버거 킹 (Burger King)에서 경력을 쌓을 수있는 "나는 정치적"유형의 CTO 일 가능성이 크다. 분명히 IT 기술이 현명하지는 않다. – TomTom