2011-07-28 2 views
1

달성하고자하는 것 :
각 개별 ID의 ID와 크레딧을 나타내는 테이블이 있습니다. rate(ID)=Credit(ID)/sum(Credit(ID)) 합이 모든 ID를
나는 꽤 자주 테이블을 업데이트하고 (예를 들어 sigmaID)을 다른 열을 생성하고 테이블이 합계를 저장하여 sum(Credit(ID)) 곳에 보관 할 것 이상으로
나는, 각 ID 평가하려면 은 항상 모든 행에 대해 정확히 동일한 값을 가져야합니다.. 내가 ID에 대한 신용을 변경할 때마다
(예를 들어 100을 추가), 나는이 열 값에 동일한 작업을 간단하게 할 수 있습니다 (추가 100)sql 모든 행에 대해 동일한 열 값을 자주 업데이트하십시오.

  • 내가 모든 행에 대한 sigmaID를 업데이트해야합니까? 효율적일까요?
  • sigmaID이 일관성을 위해 실제로 sum(Credit(ID))인지 확인하고 싶습니다. 과도하게 사용합니까? 비효율적일까요?
  • 다른 접근 방법이 있습니까 (효율성이 걱정됩니까?). 나는이 평가 (및 ID의 다른 매개 변수와 다른 수식의 부하)을 계산 것 UPDATE 트리거에이 모든 것을 넣어 필요로

친절 순수한 SQL 쿼리를 제공합니다. 스크립팅 언어 (PHP/python)에 액세스 할 수 있지만 확실하지는 않습니다. 따라서 순수 SQL 요청.

+0

내 경험은 나에게 권한과 이야기하는 것을 허용하지 않지만, 당신이 (HTTP를 스칼라 [기능]을 사용하여 목표를 달성 할 수있는 것으로 보인다 : // msdn.microsoft.com/en-us/library/ms189593.aspx)를 사용하여 합계와 지속 된 [계산 된 열] (http://msdn.microsoft.com/en-us/library/ms191250.aspx)을 계산하여 에 결과. –

+0

@ andriy-m : 링크 덕분에 계산 된 열은 유망 해 보였습니다. MSSQL에서만 제한되었거나 mysql/다른 sql에서 사용할 수 있습니까 ?? – Sudhi

+0

이 기능이 SQL Server에만 있지만 [이 원본] (http://www.postgresonline.com/journal/archives/51-Cross-Compare-of-SQL-Server,-MySQL, -와 - PostgreSQL.html)은 적어도 두 개의 특정 서버 제품인 MySQL과 PostgreSQL은 계산 된 열을 지원하지 않는다는 것을 보여줍니다. –

답변

0

불행히도 제 영어는 매우 가난합니다.

내가 깨달은 것처럼 과거와 현재의 열 값에 대한 모든 정보를 갖고 싶습니까?

로그인 하시겠습니까? 그렇다면 저널 테이블을 만들어서 트리거로 원하는 모든 것을 로그 할 수 있습니다.

안부,

TATO의 mumladze

+0

아니요, Credit 열의 모든 값을 추가하고 모든 행의 Credit 값이 변경 될 때마다이 값을 업데이트하고 싶습니다. – Sudhi

+0

확인, u는 그렇게 할 수있는 것보다 : – Tvitmsvleli

+0

가 좋아, u는 그렇게 할 수있는 것보다 : '코드'를 만들 또는 각 행에 대해 [yourtable]에 을 시작 [yourcollumn]의 업데이트 후 트리거 [yourtrigger] 교체 [yourtable] 업데이트 [yourcollumn] = [yourvalue] 여기서 [yourcollumn] = [whatyouwant]; 끝 [yourtrigger]; – Tvitmsvleli