PHP/mySQL - 신규 사용자가 데이터를 제출하면 벤치마크 값을 정기적으로 재계산합니다.

StackOverflow https://stackoverflow.com/questions/83088

문제

나는 아주 어린 시절의 프로그래밍 "경력"에서 아직 만나지 못한 새로운 종류의 문제에 직면했으며, 이를 가장 잘 해결할 수 있는 방법에 대한 귀하의 의견을 알고 싶습니다.

그 상황연구 애플리케이션(php/mysql)은 사용자로부터 스트레스 관련 건강 데이터를 수집합니다.사용자는 설문지를 작성한 후 분석을 받습니다.각 매개변수의 값은 벤치마크(기존 데이터 세트의 평균 및 표준편차)를 사용하여 백분위수 값으로 변환됩니다.

작업점점 더 많은 사람들이 설문지를 작성하고 있기 때문에 새로운 사용자 데이터를 사용하여 벤치마크 값(평균/SD)을 다시 계산하면 벤치마크 값(평균/SD)을 더 정확하게 만들 수 있는 가능성이 있습니다.데이터베이스에서 벤치마크 값을 업데이트하는 스크립트를 정기적으로 실행하고 싶습니다.

질문나는 지금까지 저장된 절차를 사용해 본 적이 없으며 그것이 무엇인지에 대해 약간만 알고 있지만 어떻게 든 이것이 나를 도울 수 있을 것 같은 느낌이 듭니다.아니면 스크립트를 PHP로 작성한 다음 cron 작업을 설정해야 합니까?

[편집]처음 몇 가지 답변 후에는 크론이 분명히 가야 할 길인 것처럼 보입니다.[/편집]

도움이 되었습니까?

해결책

당신이 고려하고 있는 일은 여러 가지 방법으로 이루어질 수 있습니다.

  1. 새 레코드가 업데이트될 때마다 값을 다시 계산하도록 DB에 트리거를 설정할 수 있습니다.필요한 경우 sproc의 값을 업데이트하는 데 필요한 코드를 저장할 수 있습니다.

  2. PHP 스크립트를 작성하고 cron을 통해 정기적으로 실행할 수 있습니다.

#1은 데이터베이스에 대한 삽입 속도를 늦추지만 데이터가 언제나 최신 정보.#2는 새 값을 업데이트하는 동안 테이블을 잠글 수 있으며 데이터는 다음 업데이트까지만 정확합니다.#2는 스크립트를 버전 관리 시스템에 쉽게 저장할 수 있기 때문에 백업하기가 훨씬 쉬운 반면, 트리거 및 sproc 생성 스크립트는 어떤 백업을 만들든 저장해야 합니다.

분명히 방법을 선택하기 전에 요구 사항을 평가해야 합니다.

다른 팁

크론 작업으로 설정된 PHP를 사용하면 이를 소스 코드 관리 시스템에 유지할 수 있으며 데이터베이스 추상화 계층을 사용하는 경우 전환하기로 결정하면 다른 데이터베이스로 이식할 수 있습니다.이러한 이유로 저는 저장 프로시저보다 스크립트를 사용하는 경향이 있습니다.

이 작업을 수행하는 가장 쉬운 방법은 아마도 웹 사이트에서 사용하는 것과 동일한 언어(PHP와 유사)로 스크립트를 작성하고 cron에서 호출하는 것입니다.

논리를 두 위치(기존 계산 및 저장 프로시저)에 배치하여 필요 이상으로 복잡하게 만들 필요가 없습니다.

데이터의 양이 너무 커서 즉시 계산하는 것이 너무 많은 경우 다음 중 하나를 수행하세요.

  1. 합계를 비정규화하는 PHP 스크립트를 사용한 Cron 작업
  2. 총계를 증가시키는 삽입에 대해 트리거

와 함께 가세요 크론 작업 방법.간단하고 견고하며 작동합니다.PHP/MySQL 세계에서는 저장 프로시저가 더 이상 사용되지 않는다고 말하고 싶습니다.

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