데이터 품질을 보장하는 한 가지 방법은 양식의 데이터 필드에 제약을 추가하는 것입니다. 제약 조건은 사용자가 잘못되거나 불가능한 답변을 입력하는 것을 방지합니다. 예를 들어 소득을 물어볼 때 음수나 매우 높은 값과 같은 비현실적인 값을 피하려고 합니다. 양식에 데이터 제약을 추가하는 것은 쉽습니다. 아래 단계를 따르세요:

  1. 양식에 “constraint"라는 새 열을 추가합니다.
  2. “constraint” 열에 답변에 대한 제한을 지정하는 수식을 입력합니다.

예시

소득에 대한 제약을 추가하는 예시를 고려해 봅시다. 제약 조건은 소득이 $0에서 $1,000,000 사이여야 합니다. 다음과 같이 제약을 설정할 수 있습니다:

nameconstraint
Income. >= 0 & . <= 1000000

위 예시에서 수식의 “.“는 “Income” 질문에 대해 사용자가 입력한 값을 나타내는 질문 변수를 참조합니다. 제약 조건 “. >= 0 && . <= 1000000"은 입력된 소득이 0 이상이고 1,000,000 이하임을 보장합니다.

하드 제약

하드 제약은 입력된 값이 표현식을 만족하지 않으면 양식 제출을 완전히 차단합니다. 조사원은 유효한 값을 입력할 때까지 진행할 수 없습니다.

하드 제약을 추가하려면 constraint 열에 표현식을 입력합니다. 선택적으로 constraint_message에 사람이 읽을 수 있는 메시지를 추가합니다:

typenamelabelconstraintconstraint_message
integerage응답자 나이. > 0 and . <= 120나이는 1에서 120 사이여야 합니다
decimaltemperature체온 (°C). >= 35 and . <= 42체온은 35°C에서 42°C 사이여야 합니다
textphone전화번호regex(., '^[0-9]{10}$')10자리 전화번호를 입력하세요

다중 조건

조건을 and / or로 결합합니다:

  . >= 0 and . <= 100
  
  . = 'yes' or . = 'no'
  

패턴 유효성 검사를 위한 regex() 사용

regex(value, pattern) 함수는 정규 표현식에 대해 값을 테스트합니다:

typenamelabelconstraintconstraint_message
textemail이메일 주소regex(., '^[^@]+@[^@]+\.[^@]+$')유효한 이메일 주소를 입력하세요
textzip_code우편번호regex(., '^[0-9]{5}$')5자리 우편번호를 입력하세요

제약에서 다른 필드 참조

다른 질문의 값을 참조하려면 ${fieldname}을 사용합니다:

typenamelabelconstraintconstraint_message
integerend_year종료 연도. >= ${start_year}종료 연도는 시작 연도 이후여야 합니다
decimalloan_repaid상환 금액. <= ${loan_amount}대출 금액보다 많이 상환할 수 없습니다

소프트 알림

소프트 알림 (소프트 제약 또는 경고라고도 함)은 값이 비정상적으로 보인다는 것을 조사원에게 경고하지만 진행을 허용합니다. 이는 기술적으로 유효하지만 통계적으로 가능성이 낮은 값일 때 유용합니다.

rtSurvey는 constraint 열의 특수 constraint_type 접근 방식을 사용하거나 메모 필드와 결합된 soft appearance를 통해 소프트 알림을 지원합니다.

가장 일반적인 패턴은 의심스러운 값에 플래그를 표시하는 relevant 표현식과 함께 note를 사용하고, 확인을 위한 acknowledge 질문을 짝지어 사용하는 것입니다:

typenamelabelrelevant
integerchildren자녀 수
notechildren_warning경고: ${children}명의 자녀를 입력했습니다. 올바른지 확인해 주세요.. > 15
triggerchildren_confirm자녀 수가 올바른지 확인하세요${children} > 15

constraint_message만 있는 소프트 알림

더 간단한 소프트 경고의 경우 극단적인 값에 경고하지만 넓은 범위는 허용하도록 제약을 설정할 수 있습니다:

typenamelabelconstraintconstraint_message
integerchildren자녀 수. >= 0 and . <= 30이 값이 매우 높아 보입니다. 확인해 주세요.
이 페이지가 도움이 되었나요?