31创建三个表格user表 user_wallet(用户钱包)表 user_wallet_log(用户钱包日志,转账流水)表
CREATE TABLE user (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(255) NOT NULL,
-- 其他字段...
UNIQUE (username)
);
#唯一约束是为了没有重复的用户
CREATE TABLE user_wallet (
id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT NOT NULL,
balance DECIMAL(10, 2) NOT NULL,
-- 其他字段...
FOREIGN KEY (user_id) REFERENCES user(id)
-- 注意:在这里直接创建了外键,但在一些数据库系统中,你可能需要在表创建后单独添加外键
);
#user_id必不可少,要为了此表和user之间建立一个外键来关联起来
#添加外键约束
ALTER TABLE user_wallet
ADD FOREIGN KEY (user_id) REFERENCES user(id);
CREATE TABLE user_wallet_log (
log_id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT NOT NULL,
wallet_change DECIMAL(10, 2) NOT NULL, -- 假设这是钱包金额的变化
balance_after DECIMAL(10, 2) NOT NULL, -- 假设这是变化后的钱包余额
log_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 记录日志的时间
-- 其他字段...
FOREIGN KEY (user_id) REFERENCES user(id)
);