| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- USE inventory_db;
- CREATE TABLE IF NOT EXISTS chart_of_accounts (
- id INT(11) AUTO_INCREMENT PRIMARY KEY,
- account_number VARCHAR(20) NOT NULL UNIQUE,
- account_name VARCHAR(255) NOT NULL,
- account_type ENUM('asset', 'liability', 'equity', 'revenue', 'expense') NOT NULL,
- parent_id INT(11) NULL,
- description TEXT NULL,
- opening_balance DECIMAL(10,2) DEFAULT 0.00,
- current_balance DECIMAL(10,2) DEFAULT 0.00,
- is_active BOOLEAN DEFAULT TRUE,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- FOREIGN KEY (parent_id) REFERENCES chart_of_accounts(id) ON DELETE SET NULL,
- INDEX idx_account_type (account_type),
- INDEX idx_parent (parent_id),
- INDEX idx_account_number (account_number)
- );
- CREATE TABLE IF NOT EXISTS journal_entries (
- id INT(11) AUTO_INCREMENT PRIMARY KEY,
- entry_number VARCHAR(50) NOT NULL UNIQUE,
- entry_date DATE NOT NULL,
- description TEXT NULL,
- reference_number VARCHAR(50) NULL,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- INDEX idx_entry_date (entry_date),
- INDEX idx_entry_number (entry_number)
- );
- CREATE TABLE IF NOT EXISTS account_transactions (
- id INT(11) AUTO_INCREMENT PRIMARY KEY,
- journal_entry_id INT(11) NOT NULL,
- account_id INT(11) NOT NULL,
- debit_amount DECIMAL(10,2) DEFAULT 0.00,
- credit_amount DECIMAL(10,2) DEFAULT 0.00,
- description TEXT NULL,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- FOREIGN KEY (journal_entry_id) REFERENCES journal_entries(id) ON DELETE CASCADE,
- FOREIGN KEY (account_id) REFERENCES chart_of_accounts(id) ON DELETE RESTRICT,
- INDEX idx_journal_entry (journal_entry_id),
- INDEX idx_account (account_id),
- INDEX idx_debit_credit (debit_amount, credit_amount)
- );
|