日々の業務運営とメンテナンスをサポートするために、MySQL で保守可能な会計システム テーブル構造を設計するにはどうすればよいでしょうか?
企業において、会計システムは財務データの保存、計算、管理を行う非常に重要なコンポーネントです。日々の業務運営と保守をサポートできるようにするには、保守可能な会計システムのテーブル構造を設計することが重要です。
MySQL データベースでは、次の手順に従って保守可能な会計システム テーブル構造を設計できます。
データベースとデータ テーブルを作成する
最初に、会計システムのデータを保存するにはデータベースを作成する必要があります。次のコマンドを使用して、accounting という名前のデータベースを作成します:
CREATE DATABASE `accounting` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
次に、accounting データベースに次のデータ テーブルを作成します:
2.1 アカウント テーブル (アカウント)
アカウント テーブルは、アカウント番号、アカウント名、アカウントの種類など、会社のさまざまなアカウント情報を保存するために使用されます。各アカウントの一意性は、アカウント番号フィールドによって保証されます。テーブル構造は次のとおりです。
CREATE TABLE `accounts` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `account_number` VARCHAR(20) NOT NULL, `account_name` VARCHAR(100) NOT NULL, `account_type` ENUM('资产', '负债', '权益', '收入', '费用') NOT NULL, `create_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, `update_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
2.2 勘定科目表 (件名)
勘定科目表は、口座番号、口座名、親口座番号など、特定の会計口座情報を保存するために使用されます。各アカウントの一意性は、アカウント番号フィールドによって保証されます。テーブル構造は次のとおりです。
CREATE TABLE `subjects` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `subject_number` VARCHAR(20) NOT NULL, `subject_name` VARCHAR(100) NOT NULL, `parent_subject_number` VARCHAR(20), `create_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, `update_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
2.3 伝票テーブル (伝票)
伝票テーブルは、伝票番号、会計期間、伝票の日付、文書作成者、伝票作成者などの各伝票の基本情報を保存するために使用されます。等各伝票の一意性は、伝票番号フィールドによって保証されます。テーブルの構造は次のとおりです。
CREATE TABLE `vouchers` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `voucher_number` VARCHAR(20) NOT NULL, `accounting_period` INT NOT NULL, `voucher_date` DATE NOT NULL, `created_by` VARCHAR(50), `create_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, `update_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
2.4 伝票詳細テーブル (voucher_items)
伝票詳細テーブルは、会計口座、借方金額、貸方金額など、各伝票の特定の詳細情報を保存するために使用されます。等テーブル構造は次のとおりです。
CREATE TABLE `voucher_items` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `voucher_id` INT UNSIGNED NOT NULL, `account_id` INT UNSIGNED NOT NULL, `debit_amount` DECIMAL(20,2) NOT NULL, `credit_amount` DECIMAL(20,2) NOT NULL, `create_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, `update_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
インデックスの設計
クエリのパフォーマンスを向上させるには、テーブルごとに適切なインデックスを設計する必要があります。たとえば、accounts テーブルでは、アカウント番号フィールドに一意のインデックスを作成できます:
ALTER TABLE `accounts` ADD UNIQUE INDEX `idx_account_number` (`account_number`);
伝票テーブルでは、伝票番号フィールドに一意のインデックスを作成します:
ALTER TABLE `vouchers` ADD UNIQUE INDEX `idx_voucher_number` (`voucher_number`);
伝票詳細テーブル、伝票 ID フィールドと会計アカウント ID フィールドの結合インデックスを作成します:
ALTER TABLE `voucher_items` ADD INDEX `idx_voucher_id_account_id` (`voucher_id`, `account_id`);
もちろん、ビジネスのクエリ ニーズに応じて、特定の条件に従って他のフィールドのインデックスを作成することもできます。状況。
要約
上記の手順を通じて、日常の業務運営と保守をサポートできる保守可能な会計システム テーブル構造を設計しました。実際のアプリケーションでは、ビジネス ニーズに基づいてテーブルの関連付けやトリガー設定などをさらに開発および最適化する必要もあります。大規模な会計システムの場合は、パフォーマンスとスケーラビリティを向上させるために、パーティション テーブルや読み取り/書き込み分離などのテクノロジの使用を検討することもできます。
以上が日々の業務運営とメンテナンスをサポートするために、MySQL で保守可能な会計システムのテーブル構造を設計するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。