2012-03-11 2 views
2

몇 가지 조언이 필요합니다 ... 사용자가 특정 작업을 수행 할 수있는 응용 프로그램이 있습니다. 예를 들어, 사용자는 친구를 가질 수 있습니다. ... 사용자가 친구의 활동을 볼 수 있습니다. DB에 활동 로그를 어떻게 구현해야합니까? 새 테이블을 만들어야합니까? 여러 테이블에서 일부 쿼리를 수행하고 조인 된 결과를 정렬 할 수 있습니까?DB에 사용자 기록을 저장하는 모범 사례

답변

3

activity_type 테이블과 로그 테이블을 만드는 것이 좋습니다.

activity_type | id | name   | table 
--------------+----+----------------+------- 
       1 | added friend | tbl_users 
       2 | added comment | tbl_comments 
       3 | added image | tbl_images 
       4 | Updated dp  | NULL 

지금 당신은 쉽게 다음 표를

logs_table | id | user | activity_type | object_id | time_stamp 
--------------+----+------+----------------+-----------+------------ 
       1 | 15 | 1    | 5   | 2012-03-10 08:45:05 
       2 | 15 | 2    | 19  | 2012-03-10 08:46:05 
       3 | 15 | 3    | 84  | 2012-03-10 08:47:05 
       4 | 15 | 4    | NULL  | 2012-03-10 08:48:05 

사용자 번호 (15)를 사용하여 로그를 유지 3월 10일에 새로운 친구 사용자 # 5를 추가 할 수 있습니다.

사용자 # 15은 3 월 10 일에 새로운 의견 # 19를 추가했습니다.

사용자 # 15은 3 월 10 일에 새 이미지 # 84를 추가했습니다.

사용자 # 15은 3 월 10 일에 그의 표시 그림을 변경했습니다.

UPDATE OBJECT_ID 업데이트 디스플레이 이미지 같은 - 이해가되지 않습니다 활동, 업데이트 된 프로필 정보 등이 여기에 당신이 가능하게 별도의 컬럼의 텍스트 DIFF를 저장할 수있을 수 있습니다.

+0

고마워 .... 아주 좋은 생각이야. – user1136875

관련 문제