数据库/table 结构 - 相似的条目与过多的规范化?
Database / table structure - similar entries vs. too much normalization?
我设计了这个关系数据库,它随着时间的推移跟踪各种资产及其所有者。我想做的最重要的分析之一是跟踪这些资产随时间的价值:预期原始成本、实际原始成本、实际成本等。所以我一直在将与成本/价值相关的数据放在单独的 table 称为“Support_Value”。使事情复杂化的是,我跟踪的一些资产位于使用外币的国家/地区,因此我以美元和当地货币(“LC”)收集成本/价值数据,这最终使我拥有的列数翻了一番在此 table。我还使用此 table 作为一种以类似方式跟踪资产所有者自身价值的方法。
- 此 table 的列如下:
我最初的计划是分开 table 来处理 (1) 与成本和价值相关的条目的各种“质量”(即“计划”、“上限”、“下限”,分析师“估计”,“实际”和另一个table跟踪)和(2)另一个货币。但我意识到这很可能会中断,因为它不允许有一个初始的“计划”成本,然后再进行修改,除非我们通过为修改后的附件创建新列来明确说明,但这样可以有不止一个修改。所以还是不够完美。
我现在设想的是创建一个不同的值 table,它将包含以下列:
- ID(PK 代表成本/价值估计的个别实例)
- 货币(FK 换算成我的货币table)
- 资产(FK 到我的资产 table)- 即这个成本或价值指的是什么
- 日期(FK 到我的日期 table)- 即实际跟踪修订
- 类型(即“成本”或“价值”)
- 质量(即“计划”、“上限”、“下限”、“估计”、“实际”)
- 估价 - 即第二列中指定货币的实际绝对金额
如何看待这种做法?这是改进吗?
感谢您的任何建议!
两种方法都可以。
但是,如果您认为您可能需要其他类似的专栏,
那么第二种方法更具可扩展性。
你的第二种方法,它看起来确实过度规范化了,
我建议将 "Quality" 列拆分回它的部分。
类似的东西:
- "ID"
- "Currency"
- "Asset"
- "Date"
"Type"
"Planned"
- "Lower"
- "Upper"
"Estimated"
"Actual"
- "Valuation"
干杯。
我设计了这个关系数据库,它随着时间的推移跟踪各种资产及其所有者。我想做的最重要的分析之一是跟踪这些资产随时间的价值:预期原始成本、实际原始成本、实际成本等。所以我一直在将与成本/价值相关的数据放在单独的 table 称为“Support_Value”。使事情复杂化的是,我跟踪的一些资产位于使用外币的国家/地区,因此我以美元和当地货币(“LC”)收集成本/价值数据,这最终使我拥有的列数翻了一番在此 table。我还使用此 table 作为一种以类似方式跟踪资产所有者自身价值的方法。 - 此 table 的列如下:
我最初的计划是分开 table 来处理 (1) 与成本和价值相关的条目的各种“质量”(即“计划”、“上限”、“下限”,分析师“估计”,“实际”和另一个table跟踪)和(2)另一个货币。但我意识到这很可能会中断,因为它不允许有一个初始的“计划”成本,然后再进行修改,除非我们通过为修改后的附件创建新列来明确说明,但这样可以有不止一个修改。所以还是不够完美。
我现在设想的是创建一个不同的值 table,它将包含以下列:
- ID(PK 代表成本/价值估计的个别实例)
- 货币(FK 换算成我的货币table)
- 资产(FK 到我的资产 table)- 即这个成本或价值指的是什么
- 日期(FK 到我的日期 table)- 即实际跟踪修订
- 类型(即“成本”或“价值”)
- 质量(即“计划”、“上限”、“下限”、“估计”、“实际”)
- 估价 - 即第二列中指定货币的实际绝对金额
如何看待这种做法?这是改进吗?
感谢您的任何建议!
两种方法都可以。
但是,如果您认为您可能需要其他类似的专栏, 那么第二种方法更具可扩展性。
你的第二种方法,它看起来确实过度规范化了, 我建议将 "Quality" 列拆分回它的部分。
类似的东西:
- "ID"
- "Currency"
- "Asset"
- "Date"
"Type"
"Planned"
- "Lower"
- "Upper"
"Estimated"
"Actual"
- "Valuation"
干杯。