【发布时间】:2015-11-03 06:52:05
【问题描述】:
我有一个简单的需求,但没有什么设计经验。
每个客户请求旋转照片将花费 1 美分。我需要在表中添加每个请求以用于历史记录:
CREATE TABLE Rotate_Photo
(
license VARCHAR(35),
reqtype INT NOT NULL, --each will cost 1 cent
updated TIMESTAMP,
FOREIGN KEY (license)
REFERENCES customer(license)
ON DELETE CASCADE
ON UPDATE CASCADE
)ENGINE=InnoDB;
现在另一个 Payments 表将保存每个客户的信用余额。
CREATE TABLE Payments (
license VARCHAR(35),
Amount FLOAT(5,0) NOT NULL,
receive_date DATE NOT NULL,
updated TIMESTAMP,
FOREIGN KEY (license)
REFERENCES customer(license)
ON DELETE CASCADE
ON UPDATE CASCADE
) ENGINE=InnoDB;
我如何知道客户何时失去平衡?鉴于服务器每秒会收到很多请求。
如果有请求,我可以汇总 Rotate_Photo 中的所有记录,以了解已收到多少请求并减去客户信用。但是会不会很低效?
有什么更好的方法?
【问题讨论】:
-
您是否测量过对记录进行计数/求和所需的时间?
标签: mysql database-design