2

我们的程序需要从/向不同程序导入/导出数据,每个程序都来自特定的独立属性。这些公司中的大多数会发送 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)

你觉得最后的设计怎么样?我希望有人已经经历过这个并帮助我想出一个好的解决方案。

谢谢,

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

4

2 回答 2

1

这取决于;)(我假设您的意思是json而不是 jason。

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

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

因此,我会坚持使用 XML/json 格式,除非传输或处理的速度对流程产生显着影响。

于 2010-01-24T14:45:51.473 回答
1

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

于 2010-01-24T16:30:32.503 回答