我需要存储相同值的不同类型.该值可以表示DATE,INT,BOOLEAN,DOUBLE和任何其他类型.我想知道是否有可能不使用多个表-每个表用于不同的类型(我想这将使存储的值的使用大大复杂化(主要是搜索,过滤)).当在一行中存储主要为NULL值的多列表时,存储空间和性能会下降吗?
我正在考虑带有这样的示例列的表,其中将仅填充一个值列:
id valueVarchar valueDate valueBoolean valueInt valueDouble
如果该方法明显错误,请启发我.
我正在使用MySQL(InnoDB)(数据库不是大问题,可以根据需要更改)和JPA创建JSF应用程序.
编辑:
到目前为止,我有一个带有一个文本值字段的表.我正在服务器端与数据库之间进行数值转换.因为该项目是刚刚开始的,现在更改模型将比将来减轻痛苦,所以我正在考虑存在更好的方法.
解决方法:
如果使用的是EclipseLink,则可以使用@TypeConverter将任何数据类型转换为String.您还可以有两列用于值,一列用于值的类型,可以使用@Transformation映射进行映射.
使用通用JPA,您可以使用属性访问通过get / set方法转换类型.