客户希望能够每月导入一个相当庞大的数据电子表格(至少在我看来)。目前它由大约 200 行和 41 列组成。
前两列是标识符(位置的 ID 和人类可读的名称);接下来的 39 列都是数值。这些数字实际上是“评级”,分为 39 个类别 - 但是客户刚刚暗示他们可能希望在未来扩展这些类别。
我最初的想法是创建一个模仿电子表格的数据库结构(基本上是 41 列) - 但是客户可能希望稍后添加到它,我不知道这是否是解决这个问题的最佳方法和。
我不是受过经典训练的编码员;我只是根据需要选择了一些东西,所以解决方案越简单越好。我考虑过可能在每个位置的基础上序列化一个关联数组:
----------------------------------------------------------
ID Name Data Date
----------------------------------------------------------
1 Newport {niceness:1, staff:6.5, etc.} Mar 13
2 Stobart {niceness:7, staff:3.1, etc.} Mar 13
----------------------------------------------------------
...但我不知道这是否是最好的方法,或者它是否一定会按照我设想的方式工作。想法是,如果13 年 3 月只有 39 个类别,而13 年 7 月有 42 个类别,那么数据库结构不会受到影响;只是存储了一个不同的关联数组。
这种事情还可能(?)消除导入表时出现列不匹配错误的可能性 - 例如,如果他们突然决定在没有警告的情况下删除一个类别,然后尝试导入一个短列的电子表格。
注意事项:
我正在开发这是一个 Wordpress 插件,所以数据库表结构写在那里,并且由于 WP 的dbDelta函数,更新起来相当简单。
我还希望使用 Matt Kruse 的PHP ExcelReader,在我最初的测试中它似乎非常出色。