문제

실제로 작은 데이터 세트를 사용하면 제가 작업하는 정책은 일반적으로 텍스트 파일에 고착하는 것이지만, 내 경험상 이것은 개발 두통이 될 수 있습니다. 데이터는 일반적으로 데이터베이스에서 제공되며, 그렇지 않은 경우, IT 설정/저장과 관련된 프로세스는 일반적으로 코드에 숨겨져 있습니다. 데이터베이스를 사용하면 일반적으로 사용 가능한 모든 데이터와 다른 데이터와 관련된 방법을 볼 수 있습니다.

때로는 실제로 작은 데이터 세트의 경우 코드의 내부 데이터 구조 (Perl Hash와 같은)에 저장하지만 변경이 필요한 경우 개발자의 손에 있습니다.

그렇다면 작은 세트의 작은 세트를 드물게 변경 한 데이터를 어떻게 처리합니까? 데이터베이스 테이블 또는 텍스트 파일을 사용하는시기의 기준이 설정되어 있습니까?

나는 절대적으로 모든 것을 위해 데이터베이스 테이블을 사용하고 싶은 유혹을 받고 있지만 이것에 영향을 미치는지 확실하지 않습니다.

편집하다: 맥락을 위해 :

나는 소수의 회사를 위해 웹 사이트에 새로운 연락처 양식을 작성하라는 요청을 받았으며, 향후 때때로 더 많은 것을 추가 할 것입니다. 회사는 연락처 이메일 주소가 없습니다.이 회사 내의 사용자는 (자체 계정을 통해 일자리를 게시함에 따라) 그렇게합니다. 그러나 이제는 "투기 응용 프로그램"유형 기능을 원하며 양식에는 이러한 응용 프로그램을 보내기 위해 이메일 주소가 필요합니다. 그러나 우리는 또한 양식의 속성으로 이메일 주소를 넣고 싶지 않습니다. 그렇지 않으면 스패머가 열린 이메일 게이트웨이로 사용할 수 있습니다. 따라서 분명히 회사와의 ID-> Contact_Email 유형 관계가 필요합니다.

따라서 말 그대로 약 20 번 사용될 수백만 행이있는 테이블에 열을 추가하거나 최대 약 20 행을 유지할 새 테이블을 만들 수 있습니다. 일반적으로 우리가 과거에 이것을 처리하는 방법은 단지 불쾌한 텍스트 파일을 만들고 거기에서 읽는 것입니다. 그러나 이것은 유지 보수 악몽을 생성하며 이러한 텍스트 파일은 데이터가 변경에 의존 할 때 종종 검토됩니다. 아마도 이것은 과정의 결함 일지 모르지만, 나는 이것에 대한 의견에 관심이 있습니다.

도움이 되었습니까?

해결책

이것들이 작은 구성과 같은 데이터 인 경우 간단하고 일반적인 형식을 사용합니다. 이니, JSON 및 YAML은 일반적으로 괜찮습니다. Java 및 .NET 팬도 XML을 좋아합니다. 요컨대, 메모리 내 대상을 쉽게 읽을 수있는 것을 사용하고 잊어 버리십시오.

다른 팁

데이터베이스에 넣으십시오. 드물게 변하면 중간 계층에 캐시하십시오.

즉시 떠오르는 예는 열거로 저장하기에 적합한 것과 "조회"데이터베이스 테이블에 저장하기에 적합한 것입니다.

나는 그것이 열거 값에 매핑되는 "매직 번호"가 포함 된 데이터베이스의 열을 초래할 경우, 열거는 실제로 조회 테이블로 존재해야한다는 규칙에 따라 "선을 그려"하는 경향이 있습니다. 데이터베이스에 저장된 데이터 (예 : 사용자 생성 데이터가 아닌 응용 프로그램 구성 데이터)와 관련이없는 경우, 이는 모두 열거입니다.

크기에 관계없이 데이터 세트를 소비하기 위해 개발 한 소프트웨어 도구의 사용자에 달려 있습니까?

단지 엑셀을 알고있을 수 있으므로 도구가 작성한 .CSV 파일을 구문 분석해야합니다.

개발자를 위해 작성된 경우 누가 사용하는 것을 신경 쓰는 사람입니다. 그러나 나는 사소한 데이터 또는 일시적인 데이터가있는 혼란스러운 데이터베이스의 팬이 아닙니다.

표준 구성 파일 형식 (키 : 값)과 처리 할 클래스가 있습니다. 우리는 모든 프로젝트에서 그것을 사용합니다. 대부분 우리는 응용 프로그램 (휴대폰 개발)에 대한 지속적인 속성을 설정하므로 적절한 일입니다. ymmv

프로그램이 데이터베이스에 액세스하는 경우, 백업이 쉬워지고 데이터를 이동하기가 더 쉬워집니다.

데이터베이스 액세스가없는 소규모 프로그램의 경우 XML 파일에 저장된 .NET 설정에 내 데이터를 저장합니다. 물론 이것은 C#의 기능이므로 적용되지 않을 수 있습니다.

어쨌든, 나는 모든 데이터를 한 곳에 저장해야합니다. 일반적으로 데이터베이스.

당신은 고려 했습니까? sqlite ? 파일 기반으로 "파일 만 할 수있는"(제로 구성)의 느낌을 다루지 만 완벽하게 좋은 데이터베이스와 스케일은 놀랍도록 잘 어울립니다. 그것은 많은 API를 지원하며 있습니다 수많은 앞쪽 끝 그것을 관리하기 위해.

메인 테이블의 데이터베이스에 추가하겠습니다.

  1. 백업 및 복구 (이 텍스트 파일을 복구하고 싶습니까?)
  2. ADHOC 쿼리
  3. 데이터베이스 열이 비어있는 경우 저장소 요구 사항은 최소화되어야합니다 (Oracle의 테이블 끝에있는 널 열인 경우 아무것도 없음)
  4. 여러 응용 프로그램 서버가 있으면 추가 구성 파일의 여러 사본을 보관할 필요가 없으므로 더 쉬울 것입니다.
  5. 작은 어린이 테이블에 넣는 것은 실제 혜택을 제공하지 않고 디자인을 복잡하게 만듭니다.

어쨌든 처리의 일부로 이미 데이터베이스에서 동일한 행에 이미 갈 수 있으므로 성능이 문제가되지 않을 수 있습니다. 그렇지 않은 경우 메모리로 캐시 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top