会計関連システムに最適なオプションは、どのオープンソースデータベースですか? [閉まっている]

StackOverflow https://stackoverflow.com/questions/411976

質問

私は、会社のカスタム会計アプリケーションの計画と設計の初期段階にいます。私の目標は、データストレージ部分にオープンソースリレーショナルデータベースを利用することです。広くサポートされている2つの堅牢なデータベース、MySQLとPostgreSQLを知っています。

トランザクション、ストアドプロシージャ、関数、およびセキュリティを必要とするシステムの場合、これら2つのデータベースのどちらが会計アプリケーションに最も適しているか、または他に不足しているデータベースがあるかについて意見はありますか?

MySQLとMS SQLServer 2005には精通していますが、ライセンスコストのために後者から離れようとしています。

追加してください:これは、QuickbooksやPeachtreeのような会計上のニーズではありません。これは基本的に、当社が提供する特定のビジネスサービスのアカウンティングを処理するシステムです。このニーズに対応し、カスタマイズ前に6桁の価格で販売されている2つまたは3つのシステムが存在する可能性があります。また、小規模な企業は長期にわたってベンダーと結婚する必要があります。したがって、アプリケーションを社内で構築しています。

また、購入vs.ビルドの議論には感謝しますが、購入の道はすでに取られており、ベンダーは悲惨な失敗をしたため、特定の宗教的な質問から離れたいと思います。時々自分で仕事をするだけで、この特定のプロジェクトと予算がそれを保証します。

これまでの全員の返信に感謝します。

役に立ちましたか?

解決

この種のアプリケーションに適している可能性のある4つの主要なオープンソースリレーショナルデータベース管理システムがあります:Postgresql、MySQL、Firebird、Ingres。 SQLite などの他のシステムがありますが、このタイプのアーキテクチャはなく、実際にはこのために設計されていませんワークロードのタイプ。このタイプの他のオープンソースのデータベース管理システムはいくつか存在しますが、明らかなベンダーのコミットメントの欠如など、何らかの理由で強力に実行可能ではないようです。このタイプの問題があるシステムの例は、 SAP-DBです。

Postgresql は、オープンソースデータベースの中で最高の機能セットを備えており、XAトランザクションをサポートしています。アプリケーションが3層システムであり、それほど複雑ではないトランザクションをサポートしている場合におそらく必要になるでしょう。特に、データベースへの複数の呼び出しにまたがるトランザクションを実行する場合、これが必要になります。

Illustra、 Greenplum および EnterpriseDB。 IllustraはPostgreSQLの商用リリースであり、その後Informixによって購入されました。 Greenplumは、データウェアハウジングアプリケーション用に設計された改良版です。 EnterpriseDBは、サポートされているPostgreSQLの商用バージョンにいくつかの付加価値ソフトウェアを提供する会社です。

MySQL 5.xには、合理的な機能断面をサポートする機能セットがありますが、そうではありません。 PostgreSQLのように機能豊富です。主流の受け入れがより広く、熟練した開発者を採用するのが最も簡単なオープンソースのデータベース管理システムです。古いバージョンには堅牢なトランザクションサポートがありませんでしたが、 InnoDB などのトランザクションストレージエンジンはしばらくの間利用可能です。 current 政治 Sunによる買収により、コードフォーク、MySQLランドスケープはやや乱雑、 5.1リリースの品質の問題。ただし、MySQLはオープンソースデータベース管理システムの中で最も人気があり、最もよく知られています。オープンソースサークル以外では重要なブランド認知度を持っているのは1つだけです。

Firebird は、Interbaseのオープンソースバージョンです。最後に、XAのサポートはありませんでしたが、アプリケーションが2層のクライアントサーバーシステムとしてセットアップされていれば問題ありません。 更新:これに関する明確な仕様は見つかりませんが、ドキュメントには2フェーズコミットがサポートされていることが示されていますが、XAプロトコルをサポートしているかどうかは特定できませんでした。ドキュメントは、JDBCドライバーが2フェーズコミットをサポートしていることを示しています。

このシステムの興味深い変種は

他のヒント

私のアドバイス?しないでください。買うほうがいい。会計について詳しく知っている人々は、すでにGAAPを扱っている良いパッケージを書いています。彼らはあなたがこれまでに持っているよりも大きなユーザーベースを持っているので、欠陥をより早く発見します。これは、古典的な「購入対ビルド」です。あなた自身の会社を書くことであなたの会社に競争上の優位性はありません。ライセンス費用が心配だからやっているのなら、開発時間を適切に考慮していないと思います。これが社内でこれを行うことを正当化できる唯一の方法です。

とはいえ、SQL Serverのライセンスコストが心配な場合は、PostgreSQLを最初に、またはMySQLを次に選択するデータベースとしてお勧めします。

duffymoやtuinstoelなどからの回答に強く同意します。ビルドと購入の決定を再検討してください。話させてください:

私は中規模企業(国際的、年間収益1億ドル以上)で働いていましたが、CFOは金融システムをOracle Financialsに置き換えることを決定しました。そのパッケージだけが、この会社で使用されている会計慣行と正確に一致しませんでした。

そのため、CFOは契約プログラマーのチームを雇い、彼らに支払いを行い、Oracle Financialsを好みの会計慣行に合わせてカスタマイズしました。彼女は12か月の時間を費やし、プログラマの賃金100万ドルとソフトウェアの初期費用を追加しました。

彼女は、もう一度やり直さなければならない場合、商業パッケージを購入するが、ソフトウェアのサポートするデフォルトに会社の会計習慣を適合させると言いました。それははるかに簡単で迅速で、成功する可能性が高くなります。

したがって、独自のカスタムパッケージを構築するコストを考慮してください。また、そのソフトウェアの保守、デバッグ、および機能強化にかかる会社の継続的なコストも考慮してください。 6桁の商用パッケージを購入したとしても、そのようなシステムの開発と保守のためにプログラマーに支払うよりもおそらく安価です。


あなたの述べられた質問にもっと直接答えるために、あなたのプロジェクトに関連するPostgreSQLとMySQLの間に大きな違いはないと思います。 MySQLに慣れているので、それでもいいでしょう。

財務データに FLOAT DOUBLE PRECISION のような不正確なデータ型を使用しないように注意を促したい。

オープンソースデータベースを使用したい任意のアプリケーションの場合、具体的な答えはPostgresです。これは、より多くの「エンタープライズ対応」です。 MySQLよりも、SQL標準にずっとよく準拠していることは言うまでもありません。 MySQLは後のバージョンで大幅に改善されましたが、Postgresはすべてのカテゴリでそれを打ち負かしています。

オープンソースの無料の会計システムがあります。 osFinancialsのように。なぜあなたがあなた自身のシステムを構築したいのか本当に理解できませんか?

アプリケーションにとって、それは実際には重要ではありません。 sqliteからMySQL、Postgresまで何でもうまくいくでしょう。最もよく知っているものを選択してください。

MySQLに慣れている場合は、それを使用してください。 ただし、デフォルトのMyISAMではなく適切なデータベースエンジンを選択します

ストレージエンジンのリスト

正直なところ、通常の容疑者の任意のが仕事をします。勘定体系表と関連データ表の維持は、ほとんどすべてのリレーショナルモデルを推進した根本的な問題です。実際、会計システムの一般的な仕訳ビューについて考えると、勘定科目表と取引番号、日付、説明、借方勘定で構成される一般仕訳だけが あります金額、クレジット口座および金額。他のすべてはそれらに対するSELECTです。

とはいえ、オープンソースの無料(ビールなど)バージョンを含む、完全に適切で十分にテストされ、受け入れられている金融パッケージは非常に多くあります。 、グーグルと選択に努力しました。

更新を見ました。問題は、これは主に機能以外の要件によって決定される問題です。データベースを複数のサーバーに分散しますか?どのくらいの負荷を期待しますか? 1秒あたりのトランザクション数または1日あたりのトランザクション数過去数年で両方を中心にシステムを構築しましたが、通常、最も決定的なのは信頼性とアベイラビリティの要件です:PostgreSQLは、行の原子性を強制し、同時更新をシリアル化することにより、単一行の同時更新をより効果的に処理します。一方、MySQLは本当に大きなデータベースをより適切に処理するようです。しかし、3番目の質問はバックアップです。そのうちの1つ(現時点ではどちらを思い出すことはできません)は、バックアップに多少のダウンタイムが必要です。

社内のWebベースの会計アプリケーションの場合、Gemstoneを無料だがオープンソースではないオブジェクトデータベースとして、SeasideをWebフレームワークとして使用する方がよいかもしれません。それ以外の場合はGLASSとして知られています。

社内アプリケーションの場合、開発者の労力が制限されます。 Gemstoneは、smalltalkイメージとして、開発者にとって最高の生産性を提供します。定義の変更時にオブジェクトを移行するためのサポートにより、実際の反復開発が可能になります。 Seasideは、テンプレートを、Webアプリケーションを構築するために適切に設計されたドメイン固有の言語に置き換えます。

PostgreSQLで会計ソフトウェアをビルドします。とてもうまくいきます。私はそれを強くお勧めします。実際(恥知らずのプラグ)、私たちと一緒に作業してプロジェクトを改善し、それを出発点として使用することを検討するかもしれません。

特にいくつかの理由があります:

  1. LISTEN / NOTIFYを使用すると、テーブルを頻繁にチェックしなくても、何かが変更されたときに他のプログラムを会計データベースにフックすることができます。
  2. 最も複雑なクエリで非常に優れたパフォーマンスが得られました。

FirebirdとIngresは、非常に強固なリレーショナルソリューションを提供します。 MySQLは、dbに書き込むことができる1つのアプリにすべてを本当に結び付けているのでお勧めしません(sqlモードのスープは、関係が基本的にPostgreSQL、Firebird、IngresにあるパブリックAPIではなくプライベートAPIであることを意味します)、これは、今後の柔軟性の低下を意味します。

ただし、PostgreSQLを使用すると、一流の拡張可能な開発プラットフォームがボックスに収まります。開発のペースは高いです。それは堅実です。高度な機能は非常に便利です。がっかりすることはありません。行ったことはありません。

これがデスクトップアプリケーションの場合は、SQLiteをご覧ください。パブリックドメインでは非常によく知られており、操作するのはそれほど難しくありません。

ストアドプロシージャを必要しないので、リストから削除します。

データベースではなくコードにビジネスロジックを配置する方がはるかに便利です。 " clean"を開始する機会がある場合は、データベースを使用して、最も意味のあるもの(永続性は処理しない)に使用します。

一度決定すると、MySQLとPostgreSQLの微妙な違いはなくなります。どちらもほぼ同一のSQLを処理するリレーショナルエンジンです。彼らが最も得意とすることに集中します。

推奨事項:データベースの特性に依存しないアプリケーションを作成します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top