2009-06-19 6 views
8

데이터베이스를 설계하고 최근 DayOfWeek 테이블의 열 이름을 지정했습니다. DayOfWeek은 SQL Server의 기본 제공 함수라는 것을 완전히 잊어 버렸습니다. 이제는 그대로두고 열 대괄호 [DayOfWeek]를 사용하여 열을 참조하거나 미래에 충돌을 피하기 위해 열 이름을 변경해야하는지 결정합니다. 나는 너무 멀지 않아서 프로젝트를 바꾸는 것이 너무 어렵지 않다. 내 머리 속에서의 논쟁은 DayOfWeek의 컬럼 이름이 그 목적에 너무 많은 의미가 있다는 것입니다. 그래서 나는 그것을 사용하고 싶습니다 ... 그러나 그것은 예약어입니다 ... 그리고 미래에 고통을 가져올 수 있습니다 (특히 난 항상 칼럼을 참조 할 때 대괄호를 써야합니다.)SQL Server 키워드를 열 이름으로 사용해야합니까?

모두는 어떻게 생각합니까?

답변

12

나는 그것을 바꿀 것이다. 나는 사용자라고하는 레거시 테이블을 가지고있다. 이것은 대괄호로 항상 고통을 겪고있다. 아마도 쉽게 그 경우 DayOfWeekName 또는 DayOFWeekId

조쉬

+1

DayOfWeekId로 변경 중입니다. 요일을 나타내는 열을 int에 저장하기 때문에 실제로 더 효과적입니다. 또한 데이터베이스에 User라는 테이블이 있었는데 절대로 다시는 그렇게하지 않겠습니다. 예약어로 명명 된 테이블은 확실히 나쁜 물건입니다. 내 머리 속의 논쟁은 예약어로서의 칼럼 이름이 괜찮 으면 ... 그러나 모든 사람들이 그만한 가치가 있다고 (그리고 어쨌든 더 나은 이름을 지적했다) 제안했다. 감사합니다. –

0

변화를 호출합니다. 그러나 좋은 연습으로 사방 팔걸이를 사용하고 싶습니다. 일단 익숙해지면 단어 사이에 공간을 두는 것보다 더 고통스럽지 않습니다.

0

여기에 사용자라는 표가 있습니다. 가능하다면 나는 그것을 바꿀 것이다. 조쉬가 맞지만 테이블을 나타 내기 위해 대괄호를 사용할 수 있습니다. 그 작업은 매우 빠르게 진행됩니다. 예약어를 표로 사용하면 다른 개발자가 어려울 수도 있습니다. 누군가 그 단어가 예약어라는 것을 모르는 경우 쿼리가 작동하지 않는 이유를 판단하기가 어려울 수 있습니다.

0

데이터베이스에서 데이터를 가져 오기 위해 DB 어댑터/추상화 라이브러리를 사용하는 경우 걱정하지 마십시오. 클래스가 열 이름을 이스케이프합니다. SQL 쿼리를 직접 작성하면 문제가 발생할 수 있습니다. 쿼리에서 열 이름을 이스케이프 처리해야합니다.

P. 나는 네가 몇 번이나 내가 너 같은 상황에 처한 것을 remmember. 하지만 나는 "주문"이라고 불렀다 :-)

0

나는 예약어를 사용하는 것을 피할 것이다. 신경 쓰지 않는다면 문제가 생길 수있다.

4

제프,

당신이 너무 멀리 열 이름을 변경하는 트랙 아래 경우

(상대적으로) 고통없이 나는 당신이 그것을 변경 권 해드립니다. 당신은 정비 요원에 대한 미래의 두통이 될 가능성이 있음을 확인했습니다. 그리고 시간이 지남에 따라 실제로 청소하는 것이 비용이 적을 것이라고 생각합니다. 특히 이름을 바꾸는 것이 텍스트 편집기 및 IDE의 진정한 효과적인 검색 및 대체 기능의 출현.

이름 바꾸기의 진정한 어려움은 안전하게 작업을 수행하는 데 필요한 이해를 얻는 것입니다. 당신은 그 이해를 가지고있어서 독특합니다 (저자가됩니다). 당신이 저를 (다만을 위해) 일하기 위하여 요구 한 경우에, 아마 비용 효과적인 사업 건의안이 아닐 것입니다.

그래서 다시 ... ;-)

건배 그 일을하지 않는 빠는 자신 ... 그리고 2를 고정하기위한 한. 키이스.

+0

그건 훌륭한 지적입니다 ... 지금은 이름을 바꾸는 것이 상대적으로 쉽고, 앞으로는 더 어려워 질 것입니다. 누군가 대괄호 두 개를 입력해야 할 때마다 추가하십시오 (또는 입력해야한다는 것을 기억하십시오). 그러면 많은 시간과 돈이 빨리 바뀝니다. 나는 조쉬가 제안한 DayOfWeekId와 함께 갔다. –

1

나는 목표/언어가 그것을 좋아할 것인지 확실하지 않기 때문에 항상 변수/객체/함수의 시작으로 키워드를 사용하지 않는다. 추적하는 데 시간이 걸리는 이상한 오류를 생성 할 수 있습니다. 구문 검사가 그것을 받아들이더라도, 그것은 당신이 FurryKitten과 같은 다른 이름이었던 것보다 더 많은 시간을 허비했음을 의미합니다.

저는 DayOfWeek을 피하고 전혀 다른 것을 선택합니다. 아마도 Weekday 또는 DayName 일 것입니다. 번거 로움을 덜어줍니다.

플러스 대괄호로 인해 두통이 생기고 대괄호를 사용하지 않는 SQL 개발자가 많습니다. 새로운 개발자는 결국 괄호 안의 코드를 만들어 버리게됩니다. 팀에 합류하십시오. 가능한 경우 흔하지 않은 규칙을 피해야합니다.