2017-10-19 1 views
0

질문의 주된 범위는 일명 웹 기반이 아닌 응용 프로그램이 실행 가능 정보를 저장하는 방법을 식별하는 것입니다.데이터는 웹 기반이 아닌 응용 프로그램에 어떻게 저장됩니까?

확실히 웹 기반 응용 프로그램은 데이터베이스를 사용합니다. 웹 기반이 아닌 앱은 데이터베이스 모듈로 컴파일 된 정보를 저장합니까? 예를 들어 포스트그레스가있는 경우 postgres 소스를 컴파일하고 드라이버와 함께 정보를 로컬에 저장하는 데 사용합니까?

정보가 저장되지 않은 경우 어떻게해야합니까? 웹 기반 앱용 데이터베이스입니까? 왜 누군가가 DB의 소스를 컴파일/빌드/작성합니까?

TLDR : 예제 상황;

우리는 웹 기반 게임이 아닙니다. 캐릭터 통계, 진행 상황, 만남 등을 정확하게 저장하는 데 데이터베이스를 사용합니까? 어떻게 아니라고?

답변

1

이 옵션이 많이 있습니다

  • 정적 파일 (JSON, YAML, XML, .INI, 사용자 정의 텍스트 형식, ...) 메모리로 읽어, 수정, 정기적으로 기입 및/또는 출구에서. 새 파일을 작성한 다음 이전 파일을 겹쳐 쓰도록 이름을 바꾸는 데주의하십시오.

  • 등 SQLite는, 파이어 버드, 마이크로 소프트 JET, HSQLDB, 더비, 같은

    임베디드 SQL 데이터베이스 버클리 DB와 같은

  • 임베디드 키/값을 저장

  • Standlone SQL 데이터베이스, 응용 프로그램 설치, 같은과 함께 번들로 PostgreSQL, MySQL, MS-SQL 등. 또는 사용자가 별도로 설치 한 동일한 DB. 그런 다음 응용 프로그램은 기존 DB를 사용하도록 구성됩니다.

  • Windows 레지스트리와 같은 시스템 구성 데이터베이스. 많이 변경되거나 자주 업데이트되거나 많은 양의 데이터를 저장하는 데 적합하지 않습니다. 이러지 마.

  • Java 또는 Swift 객체 직렬화와 같은 플랫폼 및 언어 관련 기능. 최고의 피하지만 그들은 그들의 자리가 있습니다.

  • 다양한 엉뚱한 사용자 정의 형식과 제도

그것은 당신이 헤더 (DLL, dylib 등) 대부분의 임베디드 데이터베이스가 공유 라이브러리로 사용할 수있는 등, 소스를 컴파일 여부는 전혀 관련이있다. 컴파일시에 프로그램에 링크 할 수 있지만, 다른 DB (또는 ODBC와 같은 드라이버 프레임 워크)의 데이터베이스 드라이버를 앱과 연결하는 것과 같은 방법으로 만 연결할 수 있습니다.

실제로 사용하는 것과 상관없이 대부분의 경우 데이터는 데스크톱 사용자 프로필 또는 모바일 앱 데이터 저장소 샌드 박스에 저장됩니다. 주요 예외는 DB 서버입니다

+0

누군가가 데이터베이스 소스를 컴파일하는 이유를 알 수 있습니까? 독립형 데이터베이스가 기존 데이터베이스를 사용한다고하면 상호 작용을 수행하기 위해 앱이 실행되는 동안 호스팅 된 Postgres 서버가 있음을 의미합니까? – Nothingness

+0

비표준 설정/옵션을 다시 컴파일하지 않고 사용할 수있게하려면 컴파일해야합니다. 또는 바이너리 패키지를 쉽게 사용할 수 없거나 전혀 사용하지 않는 틈새 플랫폼을 사용하는 경우. 아니면 당신은 통제 괴물입니다.또는 개발 버전을 테스트 중입니다. –

+0

올바른 재실행. 앱이 실행 중인지 여부에 관계없이 활성 상태로 유지되는 서비스로 실행될 수 있습니다. 또는 앱에서 관리하고 필요할 때 시작하고 중지 할 수 있습니다. 예 : https://stackoverflow.com/q/24625490/398670,https://astackoverflow.com/q/25269274/398670 –

관련 문제