gpt4 book ai didi

sql - 我应该设计一个 SQL Server 数据库来依赖 UNION 还是避免它?

转载 作者:行者123 更新时间:2023-12-04 23:44:25 25 4
gpt4 key购买 nike

执行以下 SQL 查询:

SELECT     Account, Amount AS Deposit, 0.00 AS Withdrawal, Date
FROM Deposits
WHERE Account = @Account
UNION
SELECT Account, 0 AS Expr1, Amount, Date
FROM Withdrawals
WHERE Account = @Account
ORDER BY Date Desc

相对于:
SELECT    Account, TransactionType, Amount, Date
FROM Transactions
WHERE Account = @Account
ORDER BY Date Desc

在第一个查询中,存款和取款存储在不同的表中,每当需要将它们放在一起时,例如显示银行对帐单时,它们就会被联合在一起。第二个查询将所有交易、存款和取款都存储在一个表中,交易类型通过 TransactionType 列进行区分。产生的查询结果并不完全相同,但假设客户对作为最终输出的任何一个都感到满意。

使用第一个模式设置数据库比第二个模式更好或更差是否有任何性能原因?

编辑:为了清楚起见,我想指出我问这个问题的原因是为了找出是否有 性能与使用 WHERE 子句查找不同类型数据的大表相比,保持表更小并在必要时使用 UNION 的好处。我用上面的例子来更好地表达我的问题。欢迎提供有关出于其他原因使用哪种模式更好的建议,但也请尝试回答该问题。

最佳答案

Transactions似乎更合适,因为这就是它们。虽然不太明显,但通过表格区分存款和取款并不比通过表格区分现金交易和支票交易更明智。

关于sql - 我应该设计一个 SQL Server 数据库来依赖 UNION 还是避免它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5571614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com