2009-11-05 3 views
0

당사는 로컬 데이터베이스를 사용하여 더 많은 클라이언트가 동일한 데이터베이스에 연결하고 해당 데이터베이스간에 데이터를 공유 할 수 있도록하는 제품을 보유하고 있습니다.데이터베이스 아키텍처가 로컬에서 분산으로 변경되었습니다.

DBMS : 2008

지금, 우리는 인터넷을 통해 액세스 할 수있는 하나의 데이터베이스를 만들 필요가 마이크로 소프트 SQL 서버 더 많은 사용자에게 허용되는, (나는 지금의 방법에 관심이없는 오전) 자신의 것처럼 사용하십시오.

따라야 할 간단한 예. 우리의 프로그램은 (삽입/수정/삭제) 책과 판매 관리 것이라고 여겨으로
: 이제

Table Seller: 
    IdSeller   PRIMARY 
    Name 

Table Books: 
    IdBook   PRIMARY 
    IdSeller   NOT NULL 
    Description 

, 우리는 "회사"

Table Company: 
    IdCompany  PRIMARY 
    LicenseNumber 

하여 데이터를로 배포하고 분류 할 필요가 쉬르 우리가 이런 식으로

Table Seller (NEW VERSION): 
    IdSeller   PRIMARY 
    IdCompany  NOT NULL 
    Name 

: 우리의 생각이 같은 (?) 테이블을 수정하는 것이 었습니다 전자 책은 특정 회사에 속하게 될 특정 판매자에게 속합니다.
이것은 정상적으로 작동하지만 DataAccessLayer에서 작성한 모든 쿼리를 변경해야합니다! 모든 쿼리 각

  • 재 작성을위한

    • 회사 필터링 된 뷰를
    이 문제를 처리 할 방법

    :

    우리는 솔루션의 몇 가지 생각?

  • 답변

    0

    팔목을 벗고 나면 DAL에서 다시 질문을 드리겠습니다.

    문제는 매우 상황적인 문제입니다. 이 프로그램을 얼마나 자주 업데이트합니까? 작품에 큰 수정이 있습니까? 귀사에서 대규모 리팩터링을 수행하는 방법은 무엇입니까?

    때때로, 비즈니스 세계에서 빠른 솔루션을 해킹 최적 '(

    +0

    시간이 좀 걸리지 만 대부분의 쿼리가 수정됩니다. 그것이 DAL이없는 이유입니까? –

    +0

    DAL을 잘 수정하는 것이 가장 확실한 해답입니다. 더 이상 업데이트 할 필요가 없습니다. "고객 당 한 번에 볼 수있는 해킹으로 해결할 수 있습니까?" – JustLoren

    0

    SQL Server를 노출하는 것보다 인터넷을 통해 액세스 할 수있는 WCF/웹 서비스를 만들 수 있습니다. WCF/웹 서비스에는 데이터베이스에서 클라이언트에게 제공 할 레코드와 제한 할 레코드와 관련된 모든 논리가 포함될 수 있습니다. 그리고 클라이언트는 WCF/웹 서비스에 간단하게 액세스 할 수 있습니다.

    문제를 잘 이해하지 못한다면 알려주십시오.

    +0

    내 질문에 부분적으로 대답하는 경우에도 실제로 이것은 좋은 제안입니다.여전히 "DB를 어떻게 변경합니까?" 부분이 누락되었습니다. –

    0

    먼저이 새 스키마에서 특정 회사의 대표 될지 결정해야합니다 ... 같은 기업으로는 새로운 판매자 테이블을인가 새 테이블의 각 행은 판매자와 회사와의 관계를 나타낼 것인가? 즉, 동일한 판매자가 두 개의 다른 회사와 함께 할 수 있는가? 책과 동일한 질문. 답은 테이블 스키마를 가장 효과적으로 수정하는 방법을 결정합니다

    +0

    아니요, 각 판매자는 자신의 회사가됩니다. 서로 다른 판매자 (각 회사마다 다릅니다)에 의존하기 때문에 책은 각 회사마다 다를 수 있습니다. –

    관련 문제