2012-03-02 3 views
0

나는 응용 프로그램을 구축하고 사용자가 자신의 활동을 볼 수있는 페이지 통보/로그 유형의 일종 싶습니다. 페이지는 다음 예제와 같이 나타나야합니다.Doctrine 쿼리 그룹 날짜로

Today 
[Username] has done [activity] 13:20 
[Username] has done [activity] 11:27 
[Username] has done [activity] 10:53 

Yesterday 
[Username] has done [activity] 13:20 
[Username] has done [activity] 11:27 
[Username] has done [activity] 10:53 

14 februari 
[Username] has done [activity] 13:20 
[Username] has done [activity] 11:27 
[Username] has done [activity] 10:53 

나는 어디에서 시작 해야할지 전혀 모른다. 일종의 로그 테이블을 생각하고 테이블에있는 모든 것을 기록합니다. 그러나 위의 결과를 얻으려면 어떻게 쿼리해야합니까? 나는 올바른 방향으로 나를 가리켜 줄 누군가가 필요하다.

답변

0

당신이 올바른 방향에 있습니다 그냥 같이 로그 테이블을 만들 :

create table log(
id int not null primary key identity(1,1), 
userID int not null, 
logdate datetime, 
activityID int not null) 

당신이 사용자와 가능한 모든 활동을 포함하는 활동 테이블을 포함 사용자 테이블이 가정

는 다음 3 개 테이블에 합류 쿼리를 생성 할 수 있습니다 : 다음

select * 
from log l 
    join UserTable u on l.userId=u.UserId 
    join ActivityTable a on l.ActivityId=a.ActivityID 

와 텍스트는 SELEC에 기반 형식 t