58

複式簿記会計システムのデータベース スキーマを設計する方法の詳細を説明している Web サイトを知っているか、リンクを持っている人はいますか??

たくさんの記事を見つけましたが、十分に説明できるものはありませんでした。誰かがこれについて私を助けてくれれば幸いです。

4

2 に答える 2

63

次のテーブルを作成します

  • アカウント
  • 取引
  • ラインアイテム
  • 連絡先 (顧客、サプライヤー、または従業員の場合があります)。

簡単にするために、account_type テーブル、contact_type テーブルなどは省略します。

テーブル間の関係を特定して設定する

  • 連絡先は多くのトランザクションを持つことができますが、各トランザクションは 1 つの連絡先しか持つことができません (1 対多の関係)
  • アカウントは多くのトランザクションを持つことができ、1 つのトランザクションが多くのアカウントに影響を与える可能性があります。line_item は、トランザクション テーブルとアカウント テーブルの間の結合テーブルです (多対多の関係)
  • トランザクションには多くの項目を含めることができますが、各項目は 1 つのトランザクションに関連付ける必要があります。

次のスキーマがあります (1 対多の関係)。

CONTACT ———< TRANSACTION ———< LINE_ITEM >——— ACCOUNT

各テーブルに適切なフィールドを追加します

  • コンタクト
    • 連絡先ID
    • 名前
    • アドレス1
    • addr2
    • ジップ
    • 電話
    • ファックス
    • Eメール
  • 取引
    • 取引ID
    • 日にち
    • メモ1
    • 連絡先ID
    • 参照
  • ラインアイテム
    • line_itemID
    • 取引ID
    • アカウントID
    • memo2
  • アカウント
    • アカウントID
    • アカウント名
    • 口座の種類

必要な数の新しいトランザクションを作成する

たとえば、データベースに新しいトランザクションを追加するには、トランザクション テーブルに新しいレコードを追加してフィールドに入力し、連絡先名を選択し、日付を入力します。次に、影響を受ける各アカウントの親トランザクション レコードに新しい子レコードを追加します。 . 各トランザクション レコードには、少なくとも 2 つの子レコードが必要です (複式簿記システム内)。$20 の現金でチーズを購入した場合、子レコードをトランザクション レコードの子レコードに追加し、現金勘定科目を選択して、金額フィールドに -20.00 (マイナス) を記録します。新しい子レコードを追加し、Groceries アカウントを選択して、金額フィールドに 20.00 (正) を記録します。子レコードの合計はゼロにする必要があります (つまり、20.00 - 20.00 = 0.00)。

上記のテーブルに保存されたデータに基づいて、データベースにレポートを作成します

データベース内のすべてのレコードを整理して、トランザクションの明細項目の子レコードがアカウントごとにグループ化され、日付順に並べ替えられ、次にトランザクション ID 順に並べ替えられるようにするためのクエリ。トランザクション line_items レコードの金額フィールドの累計を示す計算フィールドと、必要なその他の計算フィールドを作成します。金額を借方/貸方形式で表示する場合は、データベース クエリに 2 つの計算フィールドを作成し、1 つのフィールドを借方と呼び、もう 1 つのフィールドを貸方と呼びます。借方計算フィールドに、「line_item テーブルの金額フィールドの金額が正の場合は金額を表示し、それ以外の場合は null」という数式を入力します。与信計算フィールドに、「明細表の金額フィールドの金額が負の場合は金額を表示し、それ以外の場合はnull」という式を入力します。

このかなり単純なデータベース設計に基づいて、フィールド、テーブル、およびレポートを継続的に追加して、データベースをより複雑にし、自分自身またはビジネスの財務を追跡することができます。

于 2013-03-23T03:55:21.660 に答える
9

私はそれを刺すこともできると考えました。コメントをお待ちしております。どなたからのフィードバックにも基づいてデザインを改良します。今のところ SQL Server (2005) T-SQL 構文使用しますが、他の言語に興味がある場合はお知らせください。追加の例を追加します。

複式簿記システムでは、基本的な要素は勘定科目と取引です。基本的な「理論」は会計方程式です: 資本 = 資産 - 負債。

会計方程式の項目と 2 種類の名目勘定 (収入と支出) を組み合わせると、勘定の基本的な編成は単純に入れ子になった勘定の森になり、(最小) 5 つのツリーのルートは資産、負債、資本のいずれかになります。 、収入、および支出。

[私は一般的に、階層のための優れた SQL 設計を研究しています...詳細については後で更新します。]

興味深い階層設計の 1 つが、SQL チームの記事More Trees & Hierarchies in SQL に記載されています。

すべてのトランザクションは、バランスのとれた借方と貸方の金額で構成されます。すべてのトランザクションで、借方金額の合計と貸方金額の合計は正確に等しくなければなりません。すべての借方と貸方の金額は 1 つのアカウントに関連付けられています。

[続きを読む...]

于 2011-04-02T20:55:46.600 に答える