0

我计划要求我的 Web 应用程序的用户以以下格式提交批量数据。

BatchID:1
TotalRecords:200

Cust:CustID~FirstName~LastName~Age~Dob~City~State~Country
1~John~Abraham~35~10/10/1974~New York~NY~US

Order:OrderID~CustID~Qty~Amount~DOS
1~1~10~100.00~1/1/2012
2~1~100~1000.00~1/1/2012
1~1~10~100.00~1/1/2012

OrderDet:OrderDetID~OrderID~Reg1~Remarks
1~1~12393A~Testing order
2~1~23123B~tesitng order 1

上面显示的只是一组记录。一个平面文件最多可包含 200 个文件。

你认为这是正确的做法吗?我们需要允许批量上传,这样用户就不需要从网站一次输入每条记录。

如果您能想到任何其他有很大帮助的格式

4

4 回答 4

2

我强烈建议您将 XML 用于新项目。您的数据似乎有一些层次结构(例如,客户有订单)。这强烈支持使用 XML,因为您可以自然地反映这些关系。

如果由于某种原因您的用户不能这样做,CSV 仍然被广泛使用,并且有比 ~ 分隔文件更好的工具支持(例如,可以从 Excel 保存到 CSV)。

我可以根据经验告诉你,有一天某人的订单描述中会有一个 ~ 字符。我曾经在一家使用竖线 (|) 作为分隔符的公司工作。在有人想给他的公司命名之前工作得很好Acme ||

于 2012-06-10T03:48:40.100 回答
1

具有已定义模式的 XML 将是一个不错的选择。

您的格式有几个问题:

  • 如果备注中包含 ~ 会发生什么?例如。测试~测试备注。如何逃避这个?
  • 您的应用程序的用户是否都在同一个语言环境中?他们都希望输入日期为月/日/年吗?还是日/月/年?这些是 UTC 日期吗?
  • 您是否需要快速确定用户是否输入了“无效”数据(例如缺少必填字段?)

有众所周知的 XML 工具可以帮助验证用户上传的内容。值得考虑...

我不是 CSV 的忠实粉丝,但至少有众所周知的工具可以使用它。但是,我记得 CSV 格式存在一些差异。例如,如何转义逗号?是通过将字符串字段放在双引号中,例如。“我的第一,第二,第三”等。是通过使用\,吗?等等

于 2012-06-10T03:51:45.680 回答
0

我注意到没有人说 JSON。因此,如果实际 CSV 不适用,请使用 JSON。它比 XML 更整洁,也更短。而且,如果您希望您的用户理解您的自定义格式,那么他们肯定能够在没有 XML 模式友好的编辑器的情况下处理 JSON。

于 2012-06-10T04:21:04.220 回答
0

一般来说:

  • 如果发送方和接收方都使用相同的技术(例如,批量导入到 Microsoft SQL Server),则使用可提供最佳性能的任何特定于技术的格式。

  • 如果您想要最大的灵活性,那么 XML 是您的最佳选择。创建一个匹配的 XSchema,并验证您的导出和导入,也不是一个坏主意。

  • 否则,“无论如何”。CSV 是流行的最爱,前提是您的数据适合简单、同质的表格格式。

在所有条件相同的情况下,我可能会投票“XML”。

恕我直言.. PSM

于 2012-06-10T03:53:47.940 回答