2012-03-03 3 views
0

가능한 중복 :
User Activity Profile and Statistics기록 사용자 활동

I는 다음 표에 대해 이야기하고 내 웹 application.I에서 사용자 활동을 기록 할

Table 1:User<br> 
Table 2:Sports<br> 
Table 3:UserActivity 

옵션 1 :
사용자 로그인/로그 아웃/잘못된 로그인 또는 스포츠가 삽입/업데이트/삭제 된 경우. 활동 유형에 대한 C# 코드의 활동을 활동 테이블에 기록합니다.

옵션 2 :
데이터베이스에서 트리거를 사용하여 사용자 활동을 기록 할 수 있습니다.

어떤 옵션을 내기이며 다른 옵션을 제안 EOR 이유

, 나는 단지에 대한 두 개의 테이블 (사용자 및 스포츠) 프로가 있습니다

답변

2

을 복용하고 데이터베이스에 여러 테이블이 있습니다 두 솔루션에 대한 단점

응용 프로그램 계층에서 활동 로깅을 구현하는 것은 일반적으로 데이터베이스 트리거보다 구현하기 쉽고 유연성이 뛰어나지 만 강력한 것은 아니며 데이터 상자에 아무런 보장이 없습니다 모든 활동이 기록됩니다.

반면에 데이터베이스 계층에서 활동 로깅을 구현하면 견고성을 보장하지만 유연성이 떨어지며 SQL 구현에서 이식 가능하지 않을 때 유용합니다.

귀하의 필요에 따라 결정해야합니다.

를 사용하여 응용 프로그램 계층 수준 로깅 경우 : 활동 로깅하는 복잡한 로직을 필요로

  • 그것은 당신이 만약 세상의 끝이 아니다
  • 당신은 코드가 데이터베이스 구현에 걸쳐 이식 할 몇 가지를 그리워

를 사용하여 데이터베이스 계층 수준 로깅 경우 :

  • 활동 로그의 데이터는 간단하고 데이터베이스 이식성 당신은 모든 활동이 기록되는 것을 보장 할 우려
  • 없는 경우
  • 을 만들기 위해 많은 로직을 필요로하지 않습니다
1

질문에서 명확하지 않지만 웹 응용 프로그램 에 대해 이야기하고 있으므로은 web.config, 연결 풀링 등의 연결 문자열 하나로 표준 asp.net 접근 방식을 사용한다고 가정합니다.

이 경우 응용 프로그램의 모든 사용자는 동일한 데이터베이스 사용자를 사용하게됩니다.

제 가정이 맞으면 데이터베이스에 로그인해도 데이터베이스에 연결하는 데 사용되는 일반 사용자 인 실제 사용자가 표시되지 않습니다. 따라서 실제 사용자를 알고있는 응용 프로그램에서이를 수행하는 것이 좋습니다.