我需要存储不同类型的相同值。该值可以表示DATE,INT,BOOLEAN,DOUBLE和任何其他类型。我想知道是否有可能不使用多个表 - 每个表的不同类型(我想这会显着复杂的存储值的使用(主要是搜索,过滤))。在连续存储主要为NULL值的多个列表时,这会是一个巨大的存储和性能下降问题吗?(my)SQL数据库 - 存储不同类型的相同值
我有这样的例子列其中只有一个值列将充满思考表:
id valueVarchar valueDate valueBoolean valueInt valueDouble
如果这种做法显然是错误的,请赐教。
我使用MySQL(InnoDB)创建JSF应用程序(数据库不是一个大问题,它可以根据需要进行更改)和JPA。
编辑:
至于现在我有一个表,一个文本值字段。我在服务器端将值转换为数据库/从数据库转换值。由于该项目刚刚启动,现在改变的模式将比未来更不痛苦,因此我正在考虑存在更好的方法。
**为什么**需要存储与多种不同类型相同的值 - 您希望通过这样做来达到什么目的?为什么特定的值可能会有多种不同的类型? – 2012-01-16 10:21:59
这有点令人困惑;如果你正在尝试这样做,因为这个值可以是不同的类型,那么我会建议使用VarChar;因为存在将其转换为其他数据类型的转换功能。 – 2012-01-16 10:48:46
@MarkBannister:我的头顶:企业可能有应用程序/上下文使用不同的值,例如pi。作为浮点数和固定小数点。也可能是不同的舍入算法,例如在3分钟截断,银行家舍入到3分钟。等等。 – onedaywhen 2012-01-16 11:17:32