동일한 사용자를 가진 3 개의 데이터베이스가있는 이유는 무엇입니까?
하나의 데이터베이스가 다운되면 어떻게됩니까?
다른 두 데이터베이스의 사용을 방해하는 사용자 소스 데이터베이스의 단점이 들리는 것처럼 큰 문제는 아닐 수 있기 때문에 이러한 질문을하고 있습니다.
또한 데이터베이스가 다운되면 해당 기간 동안 다른 두 DB에서 사용자를 수정하면 일관성 문제가 발생합니다. 나는 우리가 더 많은 상황없이 최선의 조언을 줄 수 있다고 생각하지 않습니다.
지금은 사용자를위한 네 번째 데이터베이스를 만들고 거기에서만 변경하고 다른 데이터베이스와 동기화합니다. 기본적으로 동일한 데이터를 세 곳에서 변경하여 이미 비정규 화되어 있으며 아마도 일관성 문제가있을 수 있습니다. 내결함성이 중요한 경우이 체계는 여전히 다중 입력 문제를 해결하면서이를 제공합니다.
기존 데이터베이스 중 하나를 사용하는 대신이 네 번째 사용자 / 설정 전용 데이터베이스를 사용하는 것이 좋은 전략이라고 생각합니다. 다른 리소스에 묶여 있거나 많이 사용되지 않기 때문에 다운 될 가능성이 적기 때문입니다. 나는 당신이 당신이 이것을 할 수 없다고 말한 것을 알지만, 왜 그런지는 확실하지 않습니다. 기본 데이터베이스의 응용 프로그램이 사용자 편집을 직접 지원합니까, 아니면 사용자가 다른 곳을 가리킬 수있는 완전히 별개의 기능을 편집하고 있습니까?
사실, 동의어를 사용하든 데이터를 동기화하든이 "정식 사용자 테이블"아이디어를 사용하면 다운 사용자 DB 중에는 사용자를 수정할 수 없지만 괜찮습니다. 문제를 해결하고 제기하십시오! 하나의 소스, 하나의 편집 장소, 깨진 경우 고칠 것. 동기화를 사용하면 다른 모든 데이터베이스에는 작업 할 수있는 임시 복사본이 있지만 편집 할 수는 없습니다. 시스템 전체에서 데이터 복제를 최소화하는 것이 훌륭하고 유용한 목표입니다. 세 곳에서 동일한 데이터를 입력하는 것은 심각한 문제이므로이를 제거하기 위해 가능한 모든 조치를 취하십시오.
더 많은 의견을 처리하려면 모든 응용 프로그램에서 사용자 ID가 다른 경우 두 개의 새 데이터베이스가 기본 데이터베이스와 동기화되도록 계획된 다운 시간을 신중하게 고려해야합니다 (아이디어가 필요한 경우 별도의 질문을하십시오) 이것을 달성하는 방법에 대해, 까다 롭지 만 실제로 그렇게 어렵지는 않습니다).
비즈니스 요구 사항을 분석하고 주 데이터베이스에 사용자 데이터가 올바른지 확인해야하는 경우에도 여전히 정식 데이터로 사용하고 동의어 또는 동기화 중에서 선택하여 계획되지 않은 중단 시간이 모든 데이터베이스에 미치는 영향을 해결하십시오.
동의어 사용의 또 다른 단점은 더 이상 각 데이터베이스의 사용자에게 적절한 FK를 가질 수 없다는 것입니다.