VS + SQL Server 2008에서 프로그램을 만들고 LAN을 통해 연결된 3 대의 컴퓨터로 구성된 홈 네트워크에서 시작했습니다. 프로그램은 데이터베이스에서 데이터를 가져 와서 데이터 세트에 넣으므로 사용자는 데이터 세트에 대한 작업 및 데이터 세트의 업데이트, 삭제 또는 추가는 데이터베이스를 업데이트합니다. 데이터베이스가 동일한 앱을 실행중인 PC (서버) 중 하나에 있고 다른 두 대의 PC가 클라이언트 일 뿐이며 서버 데이터베이스에서 데이터를 가져옵니다.서버 데이터베이스가 변경 될 때 클라이언트 업데이트
내 문제는 한 PC에서 다른 PC가 해당 업데이트를 모르는 데이터베이스를 업데이트 할 때입니다. 예를 들어 한 사용자가 항목을 삭제하고 다른 사용자가 같은 항목을 삭제하면 오류가 발생합니다.
내 질문은 분명합니다 : 데이터베이스의 변경으로 모든 PC를 업데이트 할 수 있습니까?
하나는 각 응용 프로그램이 서버의 SQL 서버 데이터베이스와 만 대화하고 다른 PC의 다른 Apps와는 이야기하지 않습니다.
감사합니다. 실제로 큰 프로젝트이며 3 개 이상의 클라이언트가 포함되어 있으며 중간 계층을 포함하고 있습니다. SqlDependency를 확인 하겠지만 질문이 있습니다. 어떤 대기업이 그런 경우에합니까? 가장 의미있는 방식은 무엇입니까? ?? –
@alihaider - 요구 사항에 따라 다릅니다. 연결된 시나리오에서 작업하는 경우 (일반적으로 사용자가 생각하는 것처럼), 일반적으로 DB에서 대량의 데이터 세트를 가져올 필요가 없습니다. 이렇게하면 대부분 (다른 클라이언트가 일반적으로 데이터베이스의 다른 행/테이블에서 작업하고 있음) 문제를 피한 다음 낙관적 인 동시성이 희소 한 충돌을 처리합니다. 중간 계층을 사용하는 경우 중간 계층에서 데이터를 캐시하고 업데이트가 발생할 때 캐시를 무효화하거나 (SqlDependency 사용) 업데이트 된 정보를 클라이언트에 배포 할 수 있습니다 (폴링, long-polling, 콜백, 원격 이벤트 등) –
많은 POS 클라이언트가있는 재고 시스템입니다 ... 어떻게 생각하니? –