2010-04-03 6 views
0

데이터베이스를 여러 사용자에게 제공해야하는 PHP 프로젝트에서 작업해야합니다. 일반적으로 아이디어는 carbonmade 또는 basecamp 또는 심지어 wordpress mu에 대한 것과 비슷합니다. 그들은 복수 계정을 소유하고있는 다수의 사용자를 수용합니다. 계정을 해지/해지하려는 경우 페이지/데이터베이스의 모든 내용이 삭제됩니다.여러 사용자를위한 데이터베이스 설계

나는 데이터베이스를 어떻게 디자인해야하는지 잘 모르겠다. 그것은이어야한다 : 개별 사용자 계정에 대한

  • 별도의 테이블 개별 사용자 계정
  • 또는 기타에 대한
  • 별도의 데이터베이스?

이 문제에 대한 최선의 방법을 알려주십시오. 고맙습니다.

답변

1

몇 명의 사용자가 이야기하고 있습니까?

나는 모든 사용자 계정에 대해 별도의 데이터베이스를 가지고 있다고 생각합니다. 많은 장점이 있습니다 : 사용자가 지금까지 자신의 데이터베이스의 복사본을 원한다면

  • 당신은
  • 간단한 스키마 (및 응용 프로그램 코드)를 유지할 수 있습니다 당신은 단지 그것을 덤프하고
  • 에게 줄 수 각 데이터베이스에 대한 액세스를 주어진 사용자 계정으로 제한하여 보안을 쉽게 처리 할 수 ​​있습니다.
  • 별도의 데이터베이스를 사용하기 때문에 더 많은 데이터베이스 서버를 추가하여 더 쉽게 확장 할 수 있습니다 (사용되는 공통 테이블이 없을 것입니다 모든 사용자)

물론 수백 개의 데이터베이스에 업데이트를 배포해야하는 경우 약간의 어려움이있을 수 있지만 자동화 된 스크립팅이 그 이유입니다.

각 사용자별로 별도의 표를 갖는 아이디어는 코딩의 악몽처럼 보입니다. 공유 테이블을 참조 할 때마다 현재 사용자의 복사본과 일치하도록 이름을 수정해야합니다.

+1

처음에는 100 명이 넘는 사용자를 조사하고 있습니다. 무료 사용자. 귀하의 추천에 따라 포털 사이트가 계정과 관련된 기본 정보를 저장 한 다음 개별 계정에 대한 데이터베이스를 분리하기위한 기본 데이터베이스가 필요하다는 의미입니까? –

+0

물론 합리적인 것 같습니다. –

+0

모든 사용자 계정의 회원을 저장해야하는 경우 어떨까요? 예를 들어, 우리가 wordpress mu 블로그에 대해 이야기하고 있다면 말이죠. 방문자가있는 경우 A, 계정 사용자 abc의 회원/저자가되며 xyz에 가입하려고합니다. A는 서로 다른 데이터베이스를 사용하면서 2 명의 사용자가 연결되어 있지 않으므로 abc로 등록한 다음 xyz로 다시 등록해야합니까? 무엇이 장단점을 기본 포털 데이터베이스 아래에 두어 로그인 및 액세스에 1 명의 ID 만 필요하거나 별도 계정의 데이터베이스 아래에 둘 수 있습니까? 감사. –