소규모 프로젝트의 XML 대 SQL?


10

로컬 응용 프로그램 (WPF 및 C #에서 개발)이므로 한 번에 한 명의 사용자 만있는 작은 프로젝트를 진행하고 있습니다. 데이터를 저장하기 위해 XML 파일을 사용하려고 생각했지만 이것이 최선의 방법인지 궁금합니다.

데이터의 목적 :

  • 쉐들
  • 폴더의 파일 라이브러리 (아티스트 이름, 제목, HDD의 위치)
  • shedule 데이터를 기반으로 한 통계
  • ...

라이브러리에 관한 정보는 내가 생각한 XML에서는 좋을 것이지만 나머지는 확실하지 않습니다. 또한 LINQ to SQL은 LINQ to XML보다 개발 속도 측면에서 더 수익성이 높은 것으로 보입니다. 이것이 맞습니까, 아니면 틀렸습니까? 나는 이것을 SO 또는 여기에 게시 해야하는지 확실하지 않지만 여기에 더 적절 해 보였습니다!

미리 감사합니다


2
"한 번에 한 명의 사용자"는 "6 개월 동안 유일한 수익원이되고 동시에 4,000 명의 동시 사용자를 지원해야합니다." 이에 따라 계획 :)
Bryan Boettcher

SQL Server 서비스를 실행할 필요조차 없으며 컴퓨터에서 컴퓨터로 마이그레이션하는 것이 걱정되는 경우 파일 첨부 데이터베이스로 만들 수 있습니다.
피터 스미스

2
무엇을 선택하든 추상화 계층을 만들면 필요할 때 다른 체계로 쉽게 바꿀 수 있습니다.
ratchet freak

답변:


13

많은 IO를 수행하려는 경우 SQL이 더 나은 선택입니다. SQL은 데이터를 가져 오기 / 저장하기에 적합하도록 설계 되었기 때문에 XML이 아닌 웹 사이트와 같은 데이터에 데이터를 저장하는 데 사용합니다.

XML은 의도 한대로 응용 프로그램간에 공유하고 해석 할 수있는 사람이 읽을 수있는 데이터에 적합합니다. XML 구문 분석에는 데이터 세트의 크기가 증가함에 따라 많은 비용이들 수있는 LOTS 문자열 조작이 포함됩니다.


3
Compact Edition을 잊지 마십시오.
JeffO

2

(응용 프로그램을 잘못 이해하지 않는 한) 데이터가 무한히 커질 수있는 것처럼 들립니다. 이 경우 효율성과 성능을 위해 영구 저장소를 데이터베이스 엔진에 그대로 두는 것이 가장 좋습니다.


1

데이터베이스 접근 방식으로 이동하십시오. 데이터를 처리하는 입증 된 기술입니다.

성능 문제에서 XML에 이러한 수단이없는 인덱스를 사용하여 액세스 속도를 높일 수 있습니다.

데이터베이스에서는 집계 함수를 사용하여 통계 데이터를 계산할 수 있습니다. XML에서는이를 코딩해야합니다.

데이터베이스를 사용하면 상대적으로 쉽게 데이터베이스 구조를 변경할 수 있으며 (열, 테이블 추가 등) XML에서와 같이 데이터베이스간에 데이터를 이동하는 데 도움이되는 도구가 있습니다.

데이터베이스에서 무결성 규칙을 적용 할 수 있으며 XML에서 쉽지 않은 경우 사용자가 필요한 경우 자신의 선택을 작성할 수 있습니다.

데이터베이스에서 데이터를 매우 쉽게 정렬하고 보안을 추가 할 수 있습니다. 데이터베이스를 사용하면 크기와 동시성을 잊을 수 있으므로 나중에 코드를 변경하지 않고도 응용 프로그램을 확장 할 수 있습니다.

위의 경우 데이터베이스를 사용하십시오! EK

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.