gpt4 book ai didi

system - 设计处理多种文件格式的文件处理、解析、验证和持久性

转载 作者:行者123 更新时间:2023-12-03 17:21:20 25 4
gpt4 key购买 nike

如果您必须设计一个文件处理组件/系统,它可以接受多种文件格式(包括专有格式,如 Excel),解析/验证这些信息并将其存储到数据库中。您会怎么做?

注意:95% 的时间 1 行输入数据将等于数据库中的一条记录,但并非总是如此。

目前我正在使用一些我设计的自定义软件来解析/验证/存储客户数据到我们的数据库。系统通过文件系统中的位置(来自 ftp drop)识别文件,然后加载 XML“定义”文件。 (根据输入文件的放置位置加载正确的 XML)。

XML 指定文件布局(分隔或固定宽度)和字段特定项目(长度、数据类型(数字、字母、字母数字)以及要将字段存储到哪个 DB 列)等内容。

         <delimiter><![CDATA[ ]]></delimiter>
<numberOfItems>12</numberOfItems>
<dataItems>
<item>
<name>Member ID</name>
<type>any</type>
<minLength>0</minLength>
<maxLength>0</maxLength>
<validate>false</validate>
<customValidation/>
<dbColumn>MembershipID</dbColumn>
</item>

由于这种设计,输入文件必须是文本(固定宽度或分隔),并且从输入文件数据字段到 DB 列具有 1 对 1 的关系。

我想扩展我们的文件处理系统的功能以接收 Excel 或其他文件格式。

我至少有六种方法可以继续,但我现在被卡住了,因为我没有人可以真正摆脱这些想法。

再次:如果您必须设计一个文件处理组件,它可以接受多种文件格式(包括专有格式,如 Excel),解析/验证这些信息并将其存储到数据库中。您会怎么做?

最佳答案

嗯,一个简单的设计就像......

+-----------+
| reader1 |
| |---
+-----------+ \---
\--- +----------------+ +-------------+
\--| validation | | DB |
/---| |---------------| |
+-----------+ /----- +----------------+ +-------------+
| reader2 |----
| |
+-----------+

读者负责文件验证(数据是否存在?)和解析,验证部分负责任何业务逻辑,而数据库......是一个数据库。

因此,您必须设计的部分内容是 Generic ReaderToValidator 数据容器。这更像是一种业务逻辑的容器。我怀疑无论输入格式如何,您都需要相同类型的数据,因此 G.R.2.V.不会太难。

您可以通过使用 Validator 方法和数据成员设计 GR2V 父类(super class)来实现多态,然后每个读取器从 GR2V 子类化并使用自己的 ReadParseFile 方法填充数据。尽管与严格的程序方法相比,这将引入更多的耦合。我会为此进行程序化处理,因为数据是在概念设计中按程序处理的。

关于system - 设计处理多种文件格式的文件处理、解析、验证和持久性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1554994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com