2011-04-22 2 views
1

특정 도메인 개체를 URL과 연결할 수있는 웹 응용 프로그램이 있습니다. 지금 우리가 프로덕션 데이터베이스를 개발 데이터베이스 (우리가 정기적으로 수행)로 롤백하면 해당 테이블로 이동하여 해당 개발 환경을 가리키는 URL을 변경해야합니다. 관리자는 URL을 일종의 플랫 파일에 저장하는 방법을 원합니다. 따라서 데이터베이스를 롤백 할 때 URL을 변경할 필요가 없습니다. 프로덕션 환경에는 프로덕션 URL이있는 플랫 파일의 자체 버전이 있고 개발 환경에는 개발 URL이있는 플랫 파일의 자체 버전이 있습니다. 응용 프로그램은 현재 환경에서 플랫 파일을 읽습니다. 그는 또한 최종 사용자가 인터페이스를 통해 플랫 파일에서 이러한 URL을 CRUD 할 수있는 기능을 원합니다. 지금 나는 옵션을 검토하고 최선의 것을 보려고합니다. 그것은 XML 파일을 읽거나 쓰거나 MongoDB를 사용하는 것입니다 (처음 여기에서 사용하게 될 것입니다).XML 파일에 쓰기 또는 MongoDB 사용?

누군가가 내게 어떤 것이 이상적 (또는 다른 제안 사항)이 될 것이라는 조언을 해줄 수 있다면, 나는 크게 감사 할 것입니다!

이것은 asp.net 3.5 웹 응용 프로그램입니다.

+0

URL 목록 일뿐입니다. 이름 값 쌍이있는 간단한 텍스트 파일이 왜 작동하지 않습니까? – Oded

+0

그것은 본질적으로 URL의 목록에 불과하지만 URL 개체 (id 등)에 대한 참조가있는 도메인 개체를 사용하고 키가 고유하지만 충분히 고유하지는 않은지 확인하는 작업 (guids) 플랫 파일의 프로덕션 버전이 개발 플랫 파일과 동일한 ID와 파일 잠금의 잠재적 인 문제를 가질 가능성은 매우 희박하므로 텍스트 파일 이외의 다른 대안이 있는지 알고 싶었습니다. . –

+0

파일을 캐시하고 캐시 된 버전을 사용하면 IO 경합이 발생하지 않습니다. – Oded

답변

1

은 플랫 파일 (키 값 쌍 - 한 줄에 하나씩)을 사용합니다.

파일을 캐시하면 IO 경합이 매우 낮아질 수 있습니다.

변경 사항이 자주 발생하지 않는다면 캐시 주위에 래퍼를 작성하여 변경할 때 무효화하고 변경 사항을 디스크에 쓸 수 있습니다. 이렇게하면 목록에 대한 동시 변경 사항이 잘못 수행 될 수 있습니다.

0

타 제안 :

당신은 제품 하나를 개발 URL을 교체하는 작업을해야하고 Web.config의에서 그 두 값을 저장할 수 있습니다. 나는 이것을 프로젝트를 위해하고 있는데 잘 작동한다. 나는 나의 DB에서 백업을하고, 온라인으로 복원하고, 내 업데이트 작업 마녀를 불러 내 ​​모든 객체에서 루프를 수행하여 URL을 대체하고 다시 저장하려고합니다.

+0

두 URL 만있는 것은 아닙니다. 각 도메인 객체는 완전히 고유 한 URL을 가질 수 있습니다. 또한 롤백 후 URL을 변경하기 위해 무언가를하고 싶지 않습니다. 우리는 지금 그것을하고 있습니다, 그것은 db를 업데이트하는 것입니다. 우리는 그 단계를 없애고 싶습니다. –

+0

다음 원할 경우 mongo로 할 수 있습니다. 이것을 사용하면 쉽게 할 수 있습니다. https://github.com/craiggwilson/fluent-mongo – VinnyG