由于答案,问题的性质发生了变化,所以我认为发布一个新问题是可以的(?)。
您可以在下面看到我的原始数据库设计。我有 3 个表,现在我需要一个查询来获取特定用户的所有记录以进行 running_balances 计算。
- 交易是在用户之间进行的,就像相互信用一样。所以单位在用户之间交换。
- 清单是带入系统的物理内容;用户为此获得单位。
- 消费是消耗的物质;用户必须为此付费。
|------------------------------------------------- --------------------------| | 类型 | 交易 | 清单 | 消耗品| |------------------------------------------------- --------------------------| | 专栏 | 日期 | 日期 | 日期 | | | 债权人(FK用户) | 债权人(FK用户) | | | | 借方(FK 用户) | | 借方(FK 用户) | | | 服务(FK服务)| | | | | | 资产(FK资产) | 资产(FK资产) | | | 金额 | 金额 | 金额 | | | | | 价格 | |------------------------------------------------- --------------------------|
(请注意,“金额”的单位不同;这些是根据这些金额进行的条目和计算。超出了解释原因的范围,但这些是字段)。
问题是:“这可以/应该在一个表中还是多个表中(就像我现在拥有的那样)?” 我喜欢 3 表解决方案,因为它在语义上更有意义。但是,对于 running_balances,我需要这样一个复杂的选择语句(可能会产生负面的性能结果)。上面链接中的原始问题要求此声明,这里我问数据库设计是否合适(抱歉四次重复发布,希望没问题)。