【问题标题】:Mysql table structure design for economic data经济数据的mysql表结构设计
【发布时间】:2020-09-13 23:52:28
【问题描述】:

尊敬的所有 MySQL 专家 我对 Mysql 很陌生,请在这里为我提供一些指南。我有如上图所示的数据,我正在尝试设计 Mysql 的表结构来存储这些数据,并且这些数据将多年来添加,我不想多次记录相同的指标。目前我正在考虑将数据拆分为 3 个表:指标表到孔指标名称、数据值表用于保存数据值和年份以及地理表用于保存省份,但我不太确定这种方法是否正确请给出我有些光影。非常感谢。

【问题讨论】:

  • 类别和数据源呢?您能否拥有相同的指标,但根据年份或地理位置不同的数据源/类别?
  • @Shadow 感谢您帮助编辑标签,数据源和类别不被视为重要元素/只有年份和地理,它们不相互依赖
  • 如果这些字段不重要,那么您是否将它们排除在数据模型之外?如果您将它们包含在您的数据模型中,那么无论它们的重要性如何,您都需要回答有关它们的问题。
  • use text, not images/links, for text--including tables & ERDs。仅将图像用于无法表达为文本或增强文本的内容。在图片中包含图例/键和说明。
  • 一个提示:不要跨列喷洒一系列东西。我在想你的“provinceN”专栏。取消透视。

标签: mysql database-design database-normalization


【解决方案1】:

因为它是一个简单的问题,值得一个简单的答案,这里是一个建议。根据 cmets,您提供的示例数据是模棱两可的,但假设就是这样。

从您的数据来看,Indicator、Category 和 Source 看起来都是同一个实体的属性。看起来也有任意数量的省份。如果是这样,那么您可能有三个表

Indicator(IndicatorID,IndicatorText,Category,Source)
Province(ProvinceID,ProvinceName)
YearValue(IndicatorID,ProvinceID,Year,Value)

您可能不会存储国家值,只需将省份相加即可。

【讨论】:

  • 是的,这就是我要找的,起初我创建了 4 个表:indicator(indicator_id, indicatorText, category) datasource(source_id, source_name, year) Province(province_id,province_name) datavalue(indicator_id, Province_id,source_id,value) 这样会有什么缺点,非常感谢
  • 正如我在假设中所说的 - 您的样本数据每个指标只有一个来源和类别,这表明它们是相关的。如果不是,则应用规范化规则,数据源和类别将被分解到其他表中。
猜你喜欢
  • 1970-01-01
  • 2017-04-10
  • 2011-04-20
  • 2013-02-17
  • 2021-08-10
  • 1970-01-01
  • 2012-10-20
  • 1970-01-01
  • 2013-02-13
相关资源
最近更新 更多