【发布时间】:2010-12-06 00:21:17
【问题描述】:
如果您必须设计一个文件处理组件/系统,它可以采用多种文件格式(包括专有格式,如 Excel),解析/验证这些信息并将其存储到数据库中。您会怎么做是吗?
注意:95% 的情况下,1 行输入数据将等于数据库中的一条记录,但并非总是如此。
目前我正在使用一些我设计的自定义软件来解析/验证/将客户数据存储到我们的数据库中。系统通过文件系统中的位置(从 ftp 下载)识别文件,然后加载 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 等专有格式),解析/验证这些信息并将其存储到数据库中。您会怎么做是吗?
【问题讨论】:
-
Serverfault.com 是一个可以与您讨论系统设计的网站
-
没有。 Serverfault.com 仅提供与服务器相关的问题。
-
@Andrejs- Servefault 是为系统管理员和 IT 专业人员设计的,所以这取决于他对系统设计的问题