我需要以文本格式与不同程序交换数据你有什么建议?

时间:2010-01-24 14:33:47

标签: xml database json file-format

我们的计划需要从/向不同的程序导入/导出数据,每个程序都来自特定的独立属性。 这些公司中的大多数将发送2个文本文件:第一个包含数据内容,第二个包含描述。 假设这个例子:

内容文件:TheArtofDeceptionKevin11.53

Description file: offset[0..16] -> Book name 
                  offset[17..21] -> Author
                  offset[22..27] -> Price

为了解决这个问题,我为每个公司使用了一个基于Jason的配置文件,为了提取数据,我将解析jason,提取偏移信息和导入......但最近我在考虑使用数据库为此,我们假设将主键定义为(company,docType,fieldname),将列定义为(start,end)

您如何看待最后的设计? 我希望有人已经完成了这个并帮助我找到一个好的解决方案。

谢谢,

我实际上是指使用数据库,解析每个公司的配置文件并在数据库中存储描述。我想这样,每次我想从特定的已知公司导入数据时,我都不需要解析配置文件。 所以所有的交换文件只被解析一次并存储到数据库中,每当我需要从新的内容文件中导入数据时,我只会查询数据库并提取偏移量。

2 个答案:

答案 0 :(得分:1)

取决于;)(我假设你的意思是json而不是杰森。

数据交换是XML的主要用例之一,其中json是子集。这允许可以使用常用工具操作的通用交换格式。

但是,如果数据是常规结构,那么您可以使用像交换格式这样的数据库,但是没有完善的格式,您不能只复制MySql数据库文件。您可以传输制表符分隔或CSV文件,但它们包含的数据不像XML那样定义 - 例如非ASCII字符如何表示? aslo此文件不包含主键信息。如果你可以就所有参与者的确切格式达成一致,那么这种传输方法将使用比XML更小的文件,并且可以更快地处理,但是如果你有非常大量的数据,那么我认为这只是重要的。

因此,我会坚持使用XML / json格式,除非转移或处理的速度对过程产生明显的影响。

答案 1 :(得分:1)

如果您想要永久存储,使用数据库系统主要是有用的,我收集的不是您的目标。您可能感兴趣的是某种消息排队系统,可以安排您的各种应用程序之间的可靠传输。至于数据格式,XML和JSON之间的决定主要是品味和问题,你的应用程序和传输机制可以最好地处理什么,除非你有兴趣使用某种模式语言来验证XML,这是目前还没有广泛使用JSON。