0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

会計ソフトの作成 3 ありえない取引のテーブル化

Last updated at Posted at 2025-06-25

貸借、勘定要素のテーブルに続いて、資産、負債、資本、費用、収益の組合せで生じるパターン中、ありえない組合せを行とするテーブルを作成します。
元々はあり得るパターン、よく見かける8つの要素の組み合わせか、または過去十数年の仕訳データに出現するパターンを持たせることを考えましたが、逆に、組み合わせにおいてありえないとされる3パターンと、その逆仕訳パターンを持たせることにしました。それで十分目的を果たしそうだからです。
このテーブルは、利用中の会計ソフトから汎用データとして受け入れる仕訳のデータの検証、長期的には仕訳の入力を直接自作アプリ側で行う時の仕訳データの検証ですが、検証して警告を発するのが目的で、制約や排除用バリデーションとしての利用は想定していません。実務では、あり得ない仕訳であっても起票することはあるし、貸借一致が確認されていれば、現に市販ソフトでもその仕訳は通っています。

CREATE TABLE kaikei."type_取引要素検証" (
    id integer NOT NULL,
    "借方" text,
    "貸方" text
);

ALTER TABLE kaikei."type_取引要素検証" OWNER TO postgres;
COMMENT ON TABLE kaikei."type_取引要素検証" IS 'ある得ないパターンの方';

CREATE SEQUENCE kaikei."type_取引要素_id_seq"
    AS integer
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;

ALTER SEQUENCE kaikei."type_取引要素_id_seq" OWNER TO postgres;
ALTER SEQUENCE kaikei."type_取引要素_id_seq" OWNED BY kaikei."type_取引要素検証".id;
ALTER TABLE ONLY kaikei."type_取引要素検証" ALTER COLUMN id SET DEFAULT nextval('kaikei."type_取引要素_id_seq"'::regclass);

INSERT INTO kaikei."type_取引要素検証" VALUES (41, '2', '4');
INSERT INTO kaikei."type_取引要素検証" VALUES (42, '2', '5');
INSERT INTO kaikei."type_取引要素検証" VALUES (43, '4', '5');
INSERT INTO kaikei."type_取引要素検証" VALUES (44, '4', '2');
INSERT INTO kaikei."type_取引要素検証" VALUES (45, '5', '2');
INSERT INTO kaikei."type_取引要素検証" VALUES (46, '5', '4');

SELECT pg_catalog.setval('kaikei."type_取引要素_id_seq"', 46, true);

ALTER TABLE ONLY kaikei."type_取引要素検証"
    ADD CONSTRAINT "type_取引要素_pkey" PRIMARY KEY (id);

ALTER TABLE ONLY kaikei."type_取引要素検証"
    ADD CONSTRAINT "f_type_取引要素検証借方" FOREIGN KEY ("借方") REFERENCES kaikei."type_勘定要素"("要素コード") ON UPDATE CASCADE DEFERRABLE;

ALTER TABLE ONLY kaikei."type_取引要素検証"
    ADD CONSTRAINT "f_type_取引要素検証貸方" FOREIGN KEY ("貸方") REFERENCES kaikei."type_勘定要素"("要素コード") ON UPDATE CASCADE DEFERRABLE;

これで、会計の主役である、勘定科目、仕訳の前に検討しておくことは終わったと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?