2016-12-07 6 views
0

설명 : 현재 수천 개의 작업 데이터베이스와 이러한 작업을 볼 수있는 수백 명의 사용자가 있습니다. 각 사용자는 고유 한 로그인을 가지고 있지만 모두 동일한 작업 목록을보고 이러한 모든 작업을 모두 완료해야합니다.작업 관리 스크립트 (모든 사용자가 임의로 완료해야하는 작업의 데이터베이스 1 개)?

내 문제점 : 각 사용자는 완료된 것으로 완료된 각 작업을 다른 모든 사용자에게 완료하지 않고 표시 할 수 있기를 바랍니다.

현재 내가 가지고있는 것 : 1 개의 작업 표 및 설명, 1 명의 사용자 표, 각 작업에 대한 1 개의 토론 표. 사용자는 로그인하여 모든 작업을 볼 수 있지만 완료 표시 할 수는 없습니다.

잘 설명하고 있는지 잘 모르겠지만 벽돌 벽에 부딪 치고 나보다 똑똑한 사람이 필요하기 때문에 이것으로 시작하는 가장 좋은 방법에 대한 통찰력을 찾고 있습니다. 그들의 통찰력 :

귀하의 의견에 대해 미리 감사드립니다.

답변

0

사용자와 작업 간의 관계를 유지하는 표가 하나 더 필요합니다. 매번 사용자가 해당 테이블에 항목 만드는 작업 완료 :

idx task_id user_id 
    1  1  3 
    2  4  3 
    3  1  5 ... 

작업, 또는 사용자에 의해 완성 된 작업을 완료하면 사용자를 조회 할 수 있습니다 그 방법, 작업이 완료되지 않은 그 사용자 등 ...

+0

고맙습니다. 새로운 사람들이 추가됨에 따라 몇 년 동안 사용하게 될 수백만 건의 레코드에 대해 걱정할 필요가 있습니다. 완료된 모든 작업을 보유하고있는 테이블 값 내의 일종의 배열에 대한 생각? –

+0

이것은 기본적으로 키 - 값 쌍입니다. 볼륨이 관심사 인 경우 HBase와 같은 키 - 값 저장소를 사용하는 것과 같은 문제를 해결할 수있는 몇 가지 방법이 있습니다. 수백만 행의 테이블이 대부분의 RDBMS에서 너무 많은 문제가 될 수 있다고 생각합니다. task_id, user_id 쌍으로 배열을 쓰고 업데이트하는 것은 관계 테이블에 추가하는 것보다 훨씬 비싼 트랜잭션이됩니다. 날짜/시간 소인 열을 추가 한 다음이 값을 사용하여 데이터를 만료시킬 수 있습니다. – PabTorre

+1

이것은 언급 한 두 가지 방식으로 완벽하게 작동하며 테스트를 위해 각 사용자 프로필에 추가 된 완성 된 값의 배열을 사용하고 있습니다. 며칠 후에 변경해야하는지 결정할 것입니다. 고맙습니다. –