試想一個交易表..存儲簽名或在交易底賬表無符號值
CREATE TABLE `transaction` (
`id` INT NOT NULL AUTO_INCREMENT,
`type` ENUM('buy','sell') NOT NULL,
`amount` DECIMAL(10,2) UNSIGNED NOT NULL,
`currency` ENUM('eur','usd') NOT NULL,
PRIMARY KEY (`id`)
) ENGINE = InnoDB;
現在,如果我需要總結的所有條目,並返回一個總的,我會做以下
SELECT SUM(
CASE
WHEN `type` = 'buy' THEN `amount` ELSE -`amount`
END) AS `total`,
`currency`
FROM `transaction`
GROUP BY `currency`;
現在想象一下SIGNED
amount
。
SELECT SUM(`amount`) AS `total` FROM `transaction` GROUP BY `currency`;
似乎更簡單吧?但不知何故,我覺得我錯過了一些東西,事情可能會變得更復雜,特別是如果我以後需要使用PHP處理數據。
我非常感謝任何關於使用簽名和未簽名數字的利弊評論。
@mkaatman這個問題在這裏不太合適,請參閱[優點和缺點]?(https://softwareengineering.meta.stackexchange.com/q/6758/31260)有什麼問題。請放棄推薦您不熟悉的網站(您甚至得到了網站名稱錯誤) – gnat
只需稍作重新說明,問題就可以被接受。感謝您的建議。 – mkaatman
@mkaatman基本上我想知道,如果我錯過了一點可以使這個或那個模式變得複雜的事情。我應該刪除「利弊」一句話嗎? – Aley