如何构造mysql表以避免额外的行

如何构造mysql表以避免额外的行,mysql,database,database-design,data-structures,Mysql,Database,Database Design,Data Structures,我正在维护费用记录费用表如下所示 Expenses(id,name) Expenses_data(id,amount,expense_id) 费用是以年为基础的,比如说10年,我把它存为个月,所以是120个月 如果我有10个费用,那么费用数据将有120*10=1200行 我想将它从1200行保存到120行,当我在excel中输入数据时,数据是这样的 id month marketing electricity bank charges 1 month-1 100

我正在维护费用记录费用表如下所示

Expenses(id,name)
Expenses_data(id,amount,expense_id)
费用是以年为基础的,比如说10年,我把它存为个月,所以是120个月

如果我有10个费用,那么费用数据将有120*10=1200行

我想将它从1200行保存到120行,当我在excel中输入数据时,数据是这样的

id   month    marketing   electricity   bank charges
1    month-1    100          200           300
2    month-2    95.5         5000          100

请建议是否可能以及如何进行

我认为您可能需要坚持现有的数据库结构,但使用查询以您希望的格式显示数据

如果您考虑存储的数据点的数量,那么您所寻求的模式与您已经拥有的模式之间没有太大区别——仍然有1200个数据点的开销。每次添加费用列时都必须升级模式,这将是一种非常具有侵略性的做法


坚持使用excel导出查询将使数据库能够理解费用类别的概念,更新导出查询以包含新类别将比修改模式容易得多。通过迭代“已知哪些费用类别?”的初始查询,甚至可以通过编程方式计算必要的联接。

在该网站上搜索
mysql pivot table
问题。