Database 如何处理一个表中的未知数据类型
我有一种情况,我需要在数据库中存储一段通用数据(可以是int、float或string),但我不知道会提前存储哪些数据。我需要一个表(最好是表)来存储这些未知类型的数据 我想我要做的是为每种数据类型都有一个列,每个记录只使用一个列,其余的Database 如何处理一个表中的未知数据类型,database,Database,我有一种情况,我需要在数据库中存储一段通用数据(可以是int、float或string),但我不知道会提前存储哪些数据。我需要一个表(最好是表)来存储这些未知类型的数据 我想我要做的是为每种数据类型都有一个列,每个记录只使用一个列,其余的NULL。这需要一些数据库之上的逻辑,但这不是一个太大的问题,因为我将在模型中表示这些记录 基本上,有没有一种最佳实践方法可以做到这一点?我还没有想出比这更糟糕的方法,但这似乎是一个比较常见的问题。提前谢谢 编辑:还有,这算是3NF吗?如果我这样做,我会选择您的
NULL
。这需要一些数据库之上的逻辑,但这不是一个太大的问题,因为我将在模型中表示这些记录
基本上,有没有一种最佳实践方法可以做到这一点?我还没有想出比这更糟糕的方法,但这似乎是一个比较常见的问题。提前谢谢
编辑:还有,这算是3NF吗?如果我这样做,我会选择您的方法,或者我会将所有内容转换为字符串,只使用一列。当然,会有另一个类型为的列(这可能对第一个方法也很有用)
<> >对于更快的代码,我可能会使用您的方法。 如果您的应用程序可以可靠地转换数据类型,则可以考虑基于可变长度二进制列的单列解决方案,第二列可以跟踪原始数据类型。(我曾经在此基础上做过一个非常小的例程,它工作得很好。)测试将显示转换是否在应用程序或数据库端得到更有效的处理。如果您作为数据库后端: 版本3数据库中的任何列(整型主键列除外)都可用于存储任何类型的值 对于其他RDBMS系统,我将使用的解决方案
请注意,在我的软件产品线(业务应用程序)中,我想不出需要这种需求的任何情况(数据类型未知的值)。当然,除非域模型有缺陷。。。我可以想象其他的软件行可能会产生不同的实践,但是我建议你考虑重新思考你的总体设计。是的,我忘了提到,我最初使用了所有的字符串和<代码>整型。PARSETIN()/Cux>,但是这被证明是太慢了(并且资源密集型的——一个相当简单的应用程序不应该占用CPU)。