2017-10-19 63 views
0

問題の主な範囲は、Webベースではないアプリケーションが実行可能な情報をどのように/どのように格納するかを特定することです。ウェブベースではないアプリケーションにデータを保存するにはどうすればよいですか?

確かに、Webベースのアプリケーションはデータベースを使用します。 Webベースではないアプリケーションは、データベースモジュールのコンパイルに情報を格納しますか? たとえば、postgresがある場合は、postgresソースをコンパイルし、ドライバを使用して情報をローカルに格納しますか?

情報が保存されていない場合は、データベースはWebベースのアプリケーションのみですか?誰かがDBのソースをコンパイル/ビルド/作成するのはなぜですか?

TLDR:例の状況。

私たちはウェブベースではないゲームを持っていますが、文字の統計、進行状況、出会いなどを正確に保存しています。これにデータベースを使用していますか?どうやって?

答えて

1

多くのオプションがあります:

  • 静的ファイル(JSON、YAML、XML、.INI、カスタムテキスト形式、...)がメモリに読み込まれ、修正、および定期的に書かれた、および/または出口で。新しいファイルを書き込んだ後、古いファイルを上書きするように名前を変更するように注意します。

  • などのSQLite、Firebirdのは、Microsoftの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://stackoverflow.com/q/25269274/398670 –

関連する問題