我有一个php/mysql应用程序,其中的一部分允许用户上传一个csv文件。在这个过程中的步骤如下:PHP解析CSV文件 - 它是否应该存储在数据库中
- 用户上传文件,它被解析的合法性进行检查
- 如果该文件是有效的,则显示该分析信息,以供用户选择沿从csv文件到数据库列
- 导入数据匹配列 - 最终阶段的CSV数据实际导入到数据库
所以,这个问题我有在这一点上是相同的csv文件在上述3个步骤中进行解析 - 这意味着3解析f或每个导入。
鉴于每个csv文件最多可以有500行,因此这不会让我感到特别高效。
我应该在步骤1之后临时将导入的信息存储在数据库表中吗?如果是这样,我显然会运行清理程序,以保持桌子尽可能干净。一个缺点是,CSV导入可以包含2到10列 - 所以我不得不建立一个至少有11列(带有ID字段)的数据库表......在大多数情况下这会有点多余。
或者我应该坚持使用csv解析?高达500行是相当小的...
或者还有另一种更好的选择?
为什么不只是一个步骤:上传并放入数据库? – abcde123483
@ulvund不能上传并直接放入数据库。如前所述,用户必须将csv文件(可以以任何顺序)的列与数据库列进行匹配。 – JonoB