上传不均匀的excel列数据到mysql表

时间:2018-03-31 17:56:42

标签: php mysql excel upload

我的任务是将excel表中存在的客户端数据批量上传到具有固定预定义列的mysql表。

问题是用户上传的excel有时包含比原始mysql表结构更少的列或更多的列。

任何人都可以给我正确的解决方案来处理这种情况,其中来自excel的匹配列值将被插入到给定的mysql字段中,其中非匹配的列值将被添加到mysql客户端表的“其他”列。

提前致谢!

1 个答案:

答案 0 :(得分:0)

我有一个潜在的解决方案。这是你想到的解决方案,但是,与你的直觉所说的相反,事实是这是唯一正确的解决方案

  

应尽可能始终解决问题 来源
  而不是试图解决(撤消)问题的 效果

从Excel到MySQL的数据传输问题。

问题:

主要问题是用户。缺乏相关政策的培训和/或执行。您可能已经在考虑为什么“只是以自己的方式更容易”的原因,但请考虑一下:您编写了当前正在发生的[多个]数据输入问题。大。

下周出现了,并聘请了一位新人,并开始以一种你从未考虑过的全新方式搞乱导入。所以,你将再次改变你的代码。 ......再一次。

它甚至不需要新员工成为新问题;不要过分信任“用户”整体。 如果有办法解决问题,用户就会找到它。(这是他们的工作!)

解决方案:

  1. 文档正确的程序,一步一步。
  2. 向所有用户提供文档
  3. 跟进所有用户和/或他们的上级,直到他们都承认更改为止。
  4. 从那时起,拒绝任何错误输入,返回给用户,以便更正或重新进入。
  5. 只要您以礼貌,专业和有组织的方式处理此问题,您就会表现为关注此[可能很重要]数据完整性的人。

    异常

    如果用户需要遵循的流程太复杂或令人困惑,以至于无法合理地预期普通人会遵守该流程,那么该流程的步骤需要改进。

    根据具体情况,您可以:

    • 整理了一个“愚蠢的”模板,因此用户别无选择,只能正确输入/传输数据。 或,
    • 包含某种数据验证过程,以便在出现问题时立即警告用户。例如,根据数据假设的位置进行计算的临时总计。 或,
    • 尽可能自动化。用户是否必须“执行此操作然后单击然后再打开它并复制” - 每次?用一个按钮或其他改进的过程替换该部件。 或,
    • (最不喜欢的方法)消灭中间人。涉及的人数减少意味着更少的错误,简单明了。这对您或其他人来说可能意味着更多的工作,但这是数据管理世界的乐趣。

    这些建议非常模糊,可能无法直接应用,这是因为您没有提供有关此数据的内容,可能出现的错误,错误发生的情况以及此处之间的过程的零信息。

    不幸的是,即使你仍然坚持“围绕错误”,你仍然必须收集这些信息并将其添加到你的问题中,然后才能有人帮助你。

    基本上你必须训练我们用户可以犯的所有类型的错误 - 而不是训练用户(而且我不确定你会得到多少帮助那种情况。)

    我以前曾经处理过很多类似的东西,涉及各种公司规模。它总是我最不喜欢的工作部分,但也是最重要的部分,虽然“自己处理它”似乎更容易,但请相信我:从长远来看,这是最好的方式。

    如果你想要更具体的建议和例子,我有很多。我很高兴我不再需要处理那些东西了!

    之前有人说 “这是偏离主题的” ......我完全不同意:处理人为因素是编程的关键部分。事实上,有些人会说这是程序员存在的唯一的原因。有时,数据问题的最佳解决方案是选择而不是来为其编码!