我有一个内部网页,可以从excel中搜索数据,并从第三方excel导出文件中读取数据。该网页允许上传多个excel文件,其中数据被读取并存储在MySQL数据库中。
我们希望更新应用程序以保留上传数据的历史记录(它是具有月度值的数据),以便我们可以轻松地从上传的数据中搜索,过滤和生成图表。
所以我使用Laravel 5.4并使用maatwebsite\excel
导入和解析excel文件。
Excel文件始终由以下列(Dummy File)
| Item group | item # | item name | Item Currency | <month> <year> |
在Item Currency
之后,当前月份的过去3年数据总共有36列,因此列的名称将为dec 2017
现在我在Laravel中为名为Item
的项目创建了一个模型,并为名为ItemMonthly
的每月值创建了一个模型
现在我能够在数据库中动态读取文件并创建列,但我觉得这非常难看并且根本没有效率:
(Gist) Code for Models and Excel Function
因为我需要阅读所有月度数据,因为我需要按照月份的顺序,所以我不能真正重命名所有列。据我所知。我需要能够在Highchart图表和Datatable中获取要渲染的所有列。有些项目没有相同的月度数据(例如,有些项目仅以2015年为例。
我在这里阅读了几个解决方案,其中一些解决方案说,不是在MySQL中创建列,而是将月度数据存储为单个列中的json对象。
关于从MySQL更改为MongoDB的完全建议的一些答案
我有点不知道为此找到最好的方法,并且真诚地想知道MySQL是否是正确的方法。到目前为止,我一直在尝试的解决方案似乎都涉及非常黑客的方法。
如果需要更多信息,请告诉我们。我不想写一个巨大的文本墙,但我也想提供正确的信息量。
非常感谢!