문제

시스템을 사용하면 신규 사용자가 결혼 날짜를 등록하고 입력 할 수 있습니다. 순수 주의자이기 때문에 나는 이것을 데이트로 보관하고 싶었습니다. 사용자 인터뷰 후, 현실 이이 접근법과 다르다는 것이 분명했습니다. 사용자는 종종 하루 또는 달을 확신하지 못하고 부분 날짜를 저장하기를 원하므로 "2009 년 6 월"또는 "2012 년 언젠가".

부분 날짜가 입력 되었음에도 불구하고 부분 날짜를 저장 한 다음 큰 날을위한 타임 라인을 만들려고하는 좋은 디자인 패턴을 알고 있습니까?

도움이 되었습니까?

해결책

어쩌면 "퍼지"날짜 일 수도 있습니다. 그들이 "2009 년 6 월"이라고 말하면, 그것은 2009 년 6 월 15 일로 저장 될 수 있으며 +/- 15 일의 분산.

"2010 년 언젠가"는 2010 년 7 월 1 일이 될 것입니다.

날짜와 # 일을 저장하십시오.

만약 그것이 실제로 어떻게 작동하는지 모르겠습니다. 그냥 아이디어. 날짜 범위를 구현하기가 더 쉬울 수 있습니다.

다른 팁

애프터 데이트 및 사전 날짜 열이있는 범위로 저장할 수 있습니다.

날짜를 항상 별도 열로 저장할 수 있습니다.

  • 년도
  • 달의 날

그들 모두를 무일하게 할 수 없게 유지하십시오. 컴퓨터를 풀 타임으로 저장하는 열을 추가 할 수 있습니다. 해당 계산 시간 동안 귀하는 NULL 인 모든 열에 기본값을 사용합니다.

날짜를 보관할 수 있습니다 YYYYMMDD, 알 수없는 달/일이 0으로 설정되어 있습니다. 20090200 "2009 년 2 월의 언젠가"가 될 것입니다. 이렇게하면 비교적 쉽게 정렬하고 비교할 수 있으며 날짜로 변환 해야하는 경우 1 월 또는 매일 1을 추가하여 고급 날짜 비교에 대한 근사치를 얻을 수 있습니다.

나는 날짜와 비슷한 문제가있었습니다. 일부 사람들은 또한 올해를 명시하지 않고 "6 월 15 일"이라고 말하고 싶었던 추가 문제로. 이것도 당신이 처리 해야하는 경우입니까?

나는 데이터베이스의 3 개의 개별 열에 하루, 월 및 연도를 보관했으며, 각 nullable이있는 (다소)는 내 응용 프로그램에서 휠을 다시 발명하고 (1974 년 15 일”이라고 말하는 사람들과 같은 일부 사례를 허용하지 않았습니다. ).

그러나 모든 날짜 처리 로직을 응용 프로그램에 넣을 때 세 열에 개별적으로 액세스하지 못했습니다. 뒤의 시이트로 나는 부분 날짜를 문자열 ( "19740615", "1974 ----", "---- 0615"등으로 잡고 단일 열에 넣었기를 바랐다. D는 열 클러 터가 적습니다.

데이터베이스에서 얼마나 많은 일을하고 싶은지, 응용 프로그램에서 얼마나 많은 일을하고 싶은지에 달려 있습니다. 어느 쪽이든, 나는 당신이 약간 다른 모양의 바퀴를 발명 할 것이라고 생각합니다. 그러나 물론, 당신은 깔끔하고 캡슐화되고 재사용 가능한 수업을 만들기에 충분합니다. :-)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top