2009-07-23 6 views
0

나는 많은 역사가 무한정 또는 적어도 오랜 시간 유지되어야하는 모델이 있습니다. 이 신청서는 다른 조직의 사람들을위한 일일 출석 통계와 몇 가지 유사한 협회를 추적합니다. 나는 사용자가 삭제되기 전에 언제든지 출석에 대한 질문에 나타나지 않기 때문에 사용자를 삭제할 수 없다는 것을 깨달았습니다. 내가 겪고있는 문제는 이전 연결에 대한 쿼리뿐만 아니라 이전 연결을 추적하는 좋은 방법을 찾는 것입니다.

사용자와 조직간에 연결 테이블이있는 경우 사용자와 조직간에 새 연결을 추가하고 날짜를 기준으로 이전 연결을 쿼리 할 수 ​​있습니다. 이 일을 우아하게하는 방법이 없어도 모든 것이보기 흉하게 들립니다. 나는 누군가가 이전에 이런 식으로 무엇을 처리했는지 궁금해하고 있었고 이미 구현 한 해결책을 가지고있을 수도있었습니다. 감사.모델 연결 내역 유지

답변

0

is_deleted 필드를 작성하면 "삭제 된"사용자에게 계속 쿼리 할 수 ​​있지만 삭제 된 것처럼 다른 곳에서도 동작하도록 코드를 수정할 수 있습니다. 그렇다면 실제로 행을 삭제하고 데이터를 잃을 필요가 없습니다.

+0

나는 그 정도의 성과를 거두었지만 사용자가 연관되어있는 현재 조직을 쉽게 얻을 수있는 방법을 찾고 있지만 동일한 사용자가 이전에 가지고 있었던 조직에 모든 이전 연관을 유지하려고합니다. 나는 많은 연관이 있는데, 그것은 같은 방식으로 유지되어야 할 것입니다. – ohdeargod

+0

이 연결 테이블에 user_id 및 organization_id 만 있습니까? 그렇다면 거기에 날짜 필드를 넣을 수 있습니까? "가입 날짜", "분리 날짜"및 is_current라는 필드를 사용하여 현재 속한 조직을 신속하게 결정할 수 있습니다. –

+0

정말 좋은 소리가 실제로, 정말 고마워요! – ohdeargod

1

모델링 포인트에서, 관계는 Employee와 Employer 사이의 관계, 즉 Employment와 유사하게 들립니다. 이것은 TimePeriod의 개념 (즉, 시작일과 종료일)과 함께 Employee와 Employer에 대한 참조를 보유하게됩니다. 당신이 쿼리 싶었다면 '활성'직원은 그들은 startDate를 < = NOW() & & endDate가> =를 지금(), '종료'직원이있는 등 지금 endDate가 <(),

나는 모든 사람은 귀하의 경우 사용자와 조직 간의 관계가 무엇인지, 그리고 관계가 시작되고 끝나는 이유는 알 수 없지만 Employment, Membership, Enrollment 또는 Contract와 유사한 개념이있을 수 있습니다. 당신이 매일 출석을 말할 때, 그것은 일정 기간 동안 매일이 아닌가? 기간은 귀하의 질의의 기초입니다. 도움이

희망,
Berryl

0

은 협회를 포함한 모델에 수정을 추적 플러그인이 될 것입니다. revision-related plugins에 대한 검색을 살펴보십시오.