2011-02-10 9 views
0

null을 허용하지 않는 열에 제약 조건이 있어도 값이 데이터베이스에서 오는 것인지 여부를 확인하는 것이 가장 좋습니다. 당신이 무슨 말을하는지 미리데이터가 null인지 확인

+1

은 소프트웨어가 얼마나 중요한지에 따라 다릅니다. 일반적으로, 아니요. 아마도 의료용 소프트웨어를 작성하고 미사일을 제어한다면 ... –

+1

코드에서 원하는 입도 수준에 달려 있다고 생각합니다. 개인적으로 데이터베이스가 null이 아니도록 설정된 열에서 null을 허용하면 데이터베이스가 손상 될 수 있기 때문에 그렇지 않습니다. – Cyberdrew

답변

4

에서

덕분에 defensive programming입니다. 나는 당신이 당신의 의견을 신뢰하지 않을 때 그것을 연습하는 것이 좋다라고 생각하는 것을 좋아합니다. 지금 DB를 신뢰할 수 있다고 생각할 수도 있습니다.하지만 미래에 열이 NULL 값을 가져야한다고 결정한다면 어떨까요? 그런 다음 코드를 변경해야합니다.

(기본 키 또는 그와 같이) 변경하지 않을 것이라고 생각하지 않는다면 나는 필요하다고 생각하지 않습니다. 언젠가 당신의 스키마를 바꾸기로 결정할 때를 대비해 미래를 시험하는 것입니다. 그 열이 NULL이 의미가있는 경우를 결코 가지지 않으면, 당신은 아마 확인할 필요가 없을 것입니다. 댓글 작성자가 말한 것처럼 NULL을 얻은 경우 DB가 엉망이된다는 점에서 더 큰 문제가 있습니다.

0

나는 비즈니스 논리에 Null을 검사하고 추가한다고 말하고 싶다. 단위 테스트 중에도 특히 유용 할 것입니다. 아마 지금은 아니지만 미래에.

0

많은 요인에 따라 다릅니다. 내 프로젝트의 많은에서

내가 데이터를 검색 한 코드에서 데이터를 처리하는 코드를 분리 것이다, 단위 테스트를 가능하게하기 위해 노력하고 (예. 데이터베이스에 대화를 통해.)

내가 할 수있는 그 방법 또한 다른 소스의 데이터를 입력하여 데이터를 처리하는 코드를 재사용 할 수도 있습니다. 이 경우 논리 레이어에 대한 입력 값을 절대적으로 보호 할 것입니다.

또한 응용 프로그램은 시간이 지남에 따라 발전하므로 현재 null 값을 가져올 수 없더라도 구현 될 수 있으며 많은 오래된 코드는 갑자기 쓸모없는 항목을 가져옵니다. 다루다. 나는 개인적으로 오히려 어떤 경우에 자동으로 잘못 처리하는 것보다 빨리 실패하기를 바랄 것이다.

관련 문제