2013-07-24 5 views
1

나는 200에서 8000 줄 정도의 XML 파일로 수백 개의 XML 파일을 포함하는 zip 파일을 업로드 할 인터페이스를 개발했습니다.수백 개의 XML 파일 저장, 편집 및 편집

일단 ZIP 파일을 업로드하면 사용자가 파일을 수동으로 편집하고 영구적으로 이동하고 저장하기 전에 XML 파일의 내용을 승인해야하므로 모든 XML 파일을 추출하여 사용자에게 표시해야합니다 서버에서

영구 저장소에서 모든 XML 파일을 개인 API 호출을 통해 요청한 사용자에게 다시 제공해야합니다.

XML 파일의 내용을 편집, 정렬, 페이지 매김 및 검색해야하기 때문에 데이터를 임시 또는 영구 저장 장치에 저장하는 방법이 혼란 스럽습니다.

나는 많은 옵션을 탐구 중이 었는데 그 중 일부는 있습니다. 저장하기 위해 아파치 루씬처럼 전체 텍스트 검색 엔진을 사용하여 데이터

  • 를 저장하기 위해 MySQL 데이터베이스를 사용

    1. (이 나쁜 생각하지만, 확실하지 될 수있다).
    2. 영구 디렉토리에 저장하고 파일을 직접 읽고 쓰는 중입니다.

    누군가 비슷한 문제에 직면했는지 또는 그러한 상황에 적응할 수있는 방법이 무엇일까 궁금합니다.

    P .: 응용 프로그램 개발을 위해 Doctrine과 함께 Zend Framework를 사용하고 있습니다.

  • 답변

    1

    파일에서 데이터를 유지하는 것보다 데이터가 XML 파일이 아닌 다른 방식 (예 : 필요한 데이터를 통한 검색 또는 검색이 필요하지 않음)으로 사용되지 않는 것이 가장 좋습니다. 데이터베이스에 저장하면 특히 db와 XML간에 데이터를 계속해서 변환하므로 불필요한 오버 헤드가 추가됩니다.

    예를 들어 SimpleXML (http://php.net/manual/en/book.simplexml.php)을 사용하여 래퍼를 작성하면 XML 파일을 반복하면서 기본 작업을 수행 할 수 있습니다. 검색 기능의 일종을 추가해야하는 경우 DOMXPath (http://www.php.net/manual/en/class.domxpath.php)를 사용하여 멋진 것을 추가하십시오.

    데이터가 다른 방식 (API, 쿼리 검색 등)으로 필요하면 들어오는 XML 파일을 구문 분석하여 데이터베이스에 저장합니다.

    ps. 클라이언트가 시스템 및 기능에 대한 장기적인 의도에 대해 100 % 명확하지 않은 경우 XML 형식 만 사용하는 경우 오버 헤드가 발생하더라도 데이터베이스 저장소로 이동합니다. 모든 것이 데이터베이스에 깔끔하게 저장되면 계산, 검색, 데이터 병합 등과 같은 새로운 기능을 추가하는 것은 문제가되지 않습니다. XML 파일로 가득 찬 드라이브를 가지고 있다면 많은 코드를 다시 작성해야 할 것입니다.