문제

모듈 식 애플리케이션을 구축하고 있습니다. 구성을 통해 이러한 응용 프로그램 모듈을 켜거나 끄십시오. 각 모듈에 대한 데이터를 보유하는 테이블에 사용해야하는 데이터베이스 구조 (MSSQL2005)를 결정하려고합니다. 내가 생각한 두 가지 옵션은 다음과 같습니다.

  1. 모든 테이블을 하나의 큰 데이터베이스에 넣고 모듈에 따라 테이블을 접두사하십시오.
  2. 각 모듈의 테이블을 다른 데이터베이스로 분리하십시오.

모든 모듈에 공통적 인 데이터가 있으므로 솔루션 2를 사용하면 해당 공통 데이터 (예 : 사용자)를 관리하는 방법을 잘 모르겠습니다.

--

한 가지를 명확히하기 위해 이러한 모듈은 잠재적으로 별도로 판매 될 수 있으며 구성 설정은 클라이언트가 제어하지 않는 것입니다. 이것이 바로 내가 별도의 테이블로 나누는 것을 고려하고있는 이유입니다.

도움이 되었습니까?

해결책

귀하가 제안한 사람들에 대한 대안 권장 사항은 SQL Server 2005에서 사용 가능한 스키마 기능입니다.

자세한 정보는이 링크를 읽으십시오 ...

http://searchsqlserver.techtarget.com/tip/0,289483,SID87_GCI1184503,00.html

다른 팁

그것이 나라면, 나는 먼저 응용 프로그램을 완전히 정상화 할 것입니다. 공유 테이블 내에 모든 공통 데이터를 배치하는 구조를 개발하고 특정 모듈 테이블에 각 모듈에 고유 한 데이터 만 남겨 둡니다.

공유 테이블의 데이터가 모든 모듈에 진정으로 공통적 이고이 '공통'테이블에 묶으려고하는 가장자리 케이스가 없으면 하나의 모듈을 켜거나 끄는 데는 다른 모듈의 기능에 영향을 미치지 않아야합니다. 이제 데이터의 복제가 거의 없습니다.

데이터베이스가 하나 있습니다. 이것은 솔루션의 관리를 엄청나게 단순화합니다.

그런 다음 데이터를 정상화합니다. 이것은 데이터 무결성 문제를 단순화합니다.

그런 다음 기본 데이터베이스에 필요한 경우 각 모듈에 대한 테이블을 추가했습니다. 이 기본 데이터베이스를 배포하지만 사용하지 않은 모듈의 데이터를 배포하지는 않습니다. 각 모듈은 설치 될 때 자체 데이터를 배포합니다 (모듈 자체에 내장되지 않고 설치 프로그램에 의해 Proply).

테이블 접두사는 그다지 중요하지 않으며 다른 방법으로는 중요하지 않으며 데이터베이스 공유에 대한 좋은 부분은 모든 모듈에서 각 테이블에 액세스하고 공유 구성 파일 등을 가질 수 있다는 것입니다.

테이블을 가로 질러 쿼리가 필요한 경우 하나의 데이터베이스에 넣는 것이 좋습니다. 그렇지 않으면 차이가 없습니다. 그러나 하나의 데이터베이스를 갖는 것은 유지 관리가 훨씬 쉽습니다.

여러 데이터베이스에 대한 요구 사항이 없다면 하나만 사용하는 것이 좋습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top