动态生成表的数据类型

时间:2012-11-26 17:11:49

标签: database-design architecture etl

首先,我是软件工程专业的最后一年。我们正在创建一个KPI软件。在那里,输入可以是CSV,txt,xml或excel。当用户将文件输入软件时,我们必须为该特定文件动态创建一个表来存储数据。

我创建了一个“文件导入向导”来导入文件。现在的问题是创建表格。让我们说以下是我收到的数据文件.txt

Name,Age,Address
Shaun,22,NY
Milan,21,Dexel RD

现在,在向导中,我已经确定表(列)的字段是NameAgeAddress。但是当我动态创建表时,是否必须让用户设置每个字段的数据类型?

eg: Name - Text
    Age - Numbers
    Address - Text

但由于我们不知道一张桌子可能有多少个字段,这将是一项非常艰巨的任务。

我的计划是将所有数据存储为'VarChar'。因为您知道,String可以轻松地转换回其他数据类型(数字,日期)。

因此,当用户想要在图表中显示数据时,我们可以获取表格中的数据并将其转换为所需的数据类型并进行必要的计算。

您对此有何建议?请帮忙。

1 个答案:

答案 0 :(得分:2)

您的数据库应该包含数据 - 如果您的数据将被视为字符串(输入类似字符串,显示为字符串,操作为字符串)将其存储为字符串就可以了。

另一方面,如果您在某个时刻以不同的方式处理数据(比如想要从日历中选择日期),那么在将数据放入数据库之前转换数据是有意义的。在这种情况下,如果你现在不进行转换,那么你将会在未来的路上踢它,这会让你以后更加头痛。

如果您处于第二种情况,请考虑阅读文件标题(可能是第一行),并为每行提供适用的选项(您甚至可以务实地进行最佳猜测)。这样,用户就应该上传什么类型的数据获得最终决定权。也许是这样的:

Name:   • String
        ◦ Number
        ◦ Date

Age:    ◦ String
        • Number
        ◦ Date

Address:• String
        ◦ Number
        ◦ Date