12

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

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

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

付け加えさせてください: これは、Quickbooks や Peachtree のような経理の必要性ではありません。これは基本的に、当社が提供する特定のビジネス サービスの会計処理を処理するシステムです。このニーズに応えるシステムがおそらく 2 つまたは 3 つあり、価格はカスタマイズ前に 6 桁台の範囲であり、私の小規模な会社は長期的にベンダーと結婚する必要があります。したがって、私たちは社内でアプリケーションを構築しています。

また、Buy vs. Buildの議論には感謝していますが、その特定の宗教的な問題から離れたいと思います。なぜなら、Buy の道はすでに選択されており、ベンダーは惨めな失敗をしたからです。場合によっては、自分で仕事をする必要があり、この特定のプロジェクトと予算がそれを保証します.

これまでのすべての回答に感謝します。

4

13 に答える 13

22

Postgresql、MySQL、Firebird、および Ingres という、この種のアプリケーションに適していると思われる、注目すべき 4 つの主要なオープンソース リレーショナル データベース管理システムがあります。SQLiteなどの他のシステムもありますが、このタイプのアーキテクチャはなく、実際にはこのタイプのワークロード用に設計されていません。このタイプのオープンソースのデータベース管理システムは他にもいくつか存在しますが、明らかなベンダーの関与がないなど、何らかの理由で強力に実行できるようには見えません。このタイプの問題があるシステムの例は、SAP-DB です。

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

Illustra、 GreenplumEnterpriseDBなど、PostgreSQL のいくつかの商用バリアントが長年にわたって構築されてきました。 Illustra は PostgreSQL の商用リリースで、その後 Informix に買収されました。Greenplum は、データ ウェアハウジング アプリケーション用に設計された変更バージョンです。EnterpriseDB は、サポートされている商用バージョンの PostgreSQL といくつかの付加価値ソフトウェアを提供する会社です。

MySQL 5.x には合理的な機能の断面をサポートする機能セットがありますが、PostgreSQL ほど機能が豊富ではありません。それはより広く主流に受け入れられており、熟練した開発者を募集するオープンソースのデータベース管理システムの中で最も簡単です. 古いバージョンには堅牢なトランザクション サポートがありませんでしたが、InnoDBなどのトランザクション ストレージ エンジンはしばらくの間利用可能でした。Sun による買収をめぐる現在 政治は コード フォークを生成し、MySQL の状況はいくぶん混乱しており、5.1 リリースの品質問題について論争が起こっています。 ただし、MySQL は、オープンソース データベース管理システムの中で群を抜いて最も人気があり、最もよく知られているシステムであり、オープンソース サークルの外で大きなブランド認知度を持つ唯一のシステムです。

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

このシステムの興味深い変種はFyracleで、Oracle とのある程度の互換性を提供するように設計されています。これはもともとCompiereのバックエンドとして使用するために開発されたもので、Oracle に対して構築され、非常に緊密に結合されていました。

Ingresはオープンソース ライセンスで利用できるようになりましたが、オープンソース コミュニティからはちょっとしたあくびが出てきました。ただし、機能が豊富で非常に成熟しています。1990 年に INGRES アプリを作成していた人を知っていますが、その歴史は 1980 年代にさかのぼります。

于 2009-01-05T00:35:56.687 に答える
16

私のアドバイス?しないでください。1つ買ったほうがいいです。会計について詳しい人は、すでに GAAP を扱っている優れたパッケージを作成しています。彼らはあなたが持っているよりも大きなユーザーベースを持っているため、欠陥をより迅速に発見できます. これは典型的な「購入 vs 構築」です。自分で書いても、あなたの会社に競争上の優位性はありません。ライセンス費用が心配でやっているのなら、開発期間をきちんと計算していないと思います。これが社内で行うことを正当化できる唯一の方法です。

そうは言っても、SQL Server のライセンス コストが心配な場合は、まず PostgreSQL を、次に MySQL を選択するデータベースとしてお勧めします。

于 2009-01-05T00:35:11.353 に答える
6

ダッフィーモやツインストエルなどからの回答に強く同意します。ビルドするか購入するかの決定を再考してください。話をさせてください:

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

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

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

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


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

FLOATDOUBLE PRECISION財務データなどの不正確なデータ型を使用しないように、義務付けられたリマインダーを提供したいと思います。

于 2009-01-05T00:53:32.347 に答える
3

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

于 2009-01-05T01:49:28.130 に答える
2

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

于 2009-01-05T00:41:51.807 に答える
1

For an in-house web-based accounting application, you might be better off with Gemstone as a free but not open source object database and Seaside as the web framework. Otherwise known as GLASS.

For an in-house application, you're going to be limited in developer effort. Gemstone, as a smalltalk image, provides the best developer productivity by far. Its support for migrating objects when changing their definition allows real iterative development. Seaside replaces templates by a well-designed domain-specific language for building web applications.

于 2009-04-02T09:48:11.393 に答える
1

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

とはいえ、オープンソースの無料(ビールのように)バージョンを含む、完全に適切で、十分にテストされ、受け入れられている金融パッケージは非常にたくさんあるので、エチュード、研究プロジェクトのためにそれを意味しない限り、私はグーグルして1つを選択する努力。

あなたのアップデートを見ました。重要なのは、これはほとんどの場合、非機能要件によって決定される問題です。データベースを複数のサーバーに分散しますか?どのくらいの負荷が予想されますか?1秒あたりのトランザクションまたは1日あたりのトランザクション?私はここ数年で両方を中心にシステムを構築してきましたが、通常、最も決定的なのは信頼性と可用性の要件です。PostgreSQLは、行の原子性を適用し、同時更新をシリアル化することで、単一行の同時更新をより効果的に処理します。一方、MySQLは非常に大規模なデータベースをより適切に処理するようです。しかし、3番目の質問はバックアップです---そのうちの1つ(今はどれを思い出せません)は、多かれ少なかれバックアップにある程度のダウンタイムを必要とします。

于 2009-01-05T04:36:59.040 に答える
1

PostgreSQL で会計ソフトを作っています。それは非常にうまく機能します。強くお勧めします。実際(恥知らずなプラグ)、私たちと協力してプロジェクトを改善し、それを出発点として使用することを検討するかもしれません.

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

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

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

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

于 2012-09-04T07:12:03.843 に答える
1

あなたのアプリケーションにとって、それは本当に重要ではありません。sqlite から MySQL、Postgres まで、おそらく問題なく動作します。あなたが最もよく知っているものを選んでください。

于 2009-01-05T01:23:40.257 に答える
1

ファイアバード - http://www.firebirdsql.org/

于 2009-01-05T01:38:19.243 に答える
1

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

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

于 2009-01-05T01:55:30.130 に答える
0

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

于 2009-01-05T00:50:08.013 に答える
-1

ストアド プロシージャは必要ないので、リストから外してください。

ビジネス ロジックをデータベースではなくコードに記述した方が、はるかに満足できるでしょう。「クリーン」を開始する機会がある場合は、データベースを使用して、最も理にかなっています-処理ではなく永続化します。

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

推奨事項: アプリケーションをデータベースの特性から独立させてください。

于 2009-01-05T00:34:23.833 に答える