天生我材必有用,千金散盡還復來。
一、開發環境
序號 | 名稱 | 版本描述 |
1 | JDK | 1.8.0_401 |
2 | 資料庫 | MySQL Community Server 8.0.37 |
3 | 資料庫客戶端 | DBeaver 21.0.2.202104042040 |
4 | 開發工具 | IntelliJ IDEA Community Edition 2023.3.4 |
二、資料庫設計
2.1、資料庫(credit_card_db)
CREATE DATABASE IF NOT EXISTS credit_card_db;
USE credit_card_db;
2.2、使用者表(Users)
儲存使用者的基本資訊
序號 | 欄位名稱 | 欄位型別 | 欄位約束 | 欄位註釋 | 備註 |
1 | user_id | INT | PRIMARY KEY | 使用者id | 主鍵自增 |
2 | username | VARCHAR(255) | NOT NULL | 使用者名稱 | |
3 | password | VARCHAR(255) | NOT NULL | 密碼 | |
4 | VARCHAR(255) | NOT NULL | 郵箱 | ||
5 | regiseter_time | 註冊時間 | |||
6 | login_time | 登入時間 | |||
7 | is_deleted | 邏輯刪除標誌 | 0:刪除,1:未刪除 | ||
8 |
CREATE TABLE Users (
user_id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL
);
2.3、賬戶表(Accounts)
儲存使用者的各個賬戶資訊,包括賬戶型別和名稱
序號 | 欄位名稱 | 欄位型別 | 欄位約束 | 欄位註釋 | 備註 |
1 | account_id | INT | PRIMARY KEY | 賬戶id | |
2 | user_id | INT | 使用者id | ||
3 | account_type_id | INT | NOT NULL | 賬戶型別id | |
4 | account_name | VARCHAR(255) | 賬戶名稱 | ||
5 |
CREATE TABLE Accounts (
account_id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
account_type ENUM('信用卡', '花唄', '京東金條', '京東白條') NOT NULL,
account_name VARCHAR(255),
FOREIGN KEY (user_id) REFERENCES Users(user_id)
);
2.4、額度表(Limits)
儲存每個賬戶的額度資訊,包括總額度、固定額度和臨時額度。
序號 | 欄位名稱 | 欄位型別 | 欄位約束 | 欄位註釋 | 備註 |
1 | limit_id | INT | PRIMARY KEY | 額度id | AUTO_INCREMENT |
2 | account_id | 賬戶id | |||
3 | total_limit | 總額度 | |||
4 | fixed_limit | ||||
5 | temporary_limit | 臨時額度 | |||
6 | last_updated | TIMESTAMP | |||
7 |
CREATE TABLE Limits (
limit_id INT AUTO_INCREMENT PRIMARY KEY,
account_id INT,
total_limit DECIMAL(15, 2) NOT NULL,
fixed_limit DECIMAL(15, 2) NOT NULL,
temporary_limit DECIMAL(15, 2),
last_updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (account_id) REFERENCES Accounts(account_id)
);
2.5、交易表(Transactions)
記錄所有的交易資訊,包括消費、還款和分期。
序號 | 欄位名稱 | 欄位型別 | 欄位約束 | 欄位註釋 | 備註 |
1 | transaction_id | INT | PRIMARY KEY | ||
2 | account_id | INT | 賬戶id | ||
3 | amount | DECIMAL(15, 2) | 交易金額 | ||
4 | transaction_type | INT | 交易型別 | 1:消費;2:還款;3:消費 | |
5 | transaction_date | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 交易日期 | |
6 | status | INT | DEFAULT 0 | 交易狀態 | 0:待處理,1:已完成 |
7 |
CREATE TABLE Transactions (
transaction_id INT AUTO_INCREMENT PRIMARY KEY,
account_id INT,
amount DECIMAL(15, 2) NOT NULL,
transaction_type ENUM('消費', '還款', '分期') NOT NULL,
transaction_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
status ENUM('已完成', '待處理') NOT NULL,
FOREIGN KEY (account_id) REFERENCES Accounts(account_id)
);
2.6、賬單表(Bills)
序號 | 欄位名稱 | 欄位型別 | 欄位約束 | 欄位註釋 | 備註 |
1 | user_id | INT | PRIMARY KEY | 使用者id | 主鍵自增 |
2 | username | VARCHAR(255) | NOT NULL | 使用者名稱 | |
3 | password | VARCHAR(255) | NOT NULL | 密碼 | |
4 | VARCHAR(255) | NOT NULL | 郵箱 | ||
5 | regiseter_time | 註冊時間 | |||
6 | login_time | 登入時間 | |||
7 | is_deleted | 邏輯刪除標誌 | 0:刪除,1:未刪除 | ||
8 | |||||
9 |
CREATE TABLE Bills (
bill_id INT AUTO_INCREMENT PRIMARY KEY,
account_id INT,
bill_date DATE NOT NULL,
total_amount DECIMAL(15, 2) NOT NULL,
amount_due DECIMAL(15, 2) NOT NULL,
amount_paid DECIMAL(15, 2),
status ENUM('未支付', '已支付') NOT NULL,
FOREIGN KEY (account_id) REFERENCES Accounts(account_id)
);
2.7、分期表(Installments)
序號 | 欄位名稱 | 欄位型別 | 欄位約束 | 欄位註釋 | 備註 |
1 | user_id | INT | PRIMARY KEY | 使用者id | 主鍵自增 |
2 | username | VARCHAR(255) | NOT NULL | 使用者名稱 | |
3 | password | VARCHAR(255) | NOT NULL | 密碼 | |
4 | VARCHAR(255) | NOT NULL | 郵箱 | ||
5 | regiseter_time | 註冊時間 | |||
6 | login_time | 登入時間 | |||
7 | is_deleted | 邏輯刪除標誌 | 0:刪除,1:未刪除 | ||
8 | |||||
9 |
2.8、賬戶型別表(AccountsType)
序號 | 欄位名稱 | 欄位型別 | 欄位約束 | 欄位註釋 | 備註 |
1 | account_type_id | INT | PRIMARY KEY | 賬戶型別id | |
2 | account_type | VARCHAR(255) | 賬戶型別 | ||
3 |
三、
— 業精於勤荒於嬉,行成於思毀於隨 —