我对数据库结构的优化有问题。我会尽力解释清楚。
我创建了一个项目,我们可以在其中添加不同的值,但是这个值必须具有数据库中不同类型的列(例如,int,double,varchar)。在数据库中存储不同类型的值的最佳方法是什么。在项目中我使用的是 Propel 1.6。关键是可以使用“int”、“varchar”和其他列类型添加值,以搜索表是有效的。
总的来说,我有两个想法。首先是创建一个“value”表,其中包含列:“id”、“value_int”、“value_double”、“value_varchar”等 - 以及相应的列类型。根据值的类型,记录将与相应列中的值一起保存(其余为 NULL)。
第二种解决方案是创建单独的表,例如“value_int”、“value_varchar”等。会有列:“id”、“value”,它们对应于“value”的相关类型(即,例如 int、varchar , ETC)。
我必须承认我不相信上述任何解决方案,最初我在考虑一个表“值”,其中列将是“文本”类型 - 但这个解决方案可能会更糟。
我想知道你对这个话题的看法,也许别的东西会更好。提前致谢。
编辑: 例如:
我们有三个表:
用户:[用户表] * id * 名称
FIELD:[配置文件字段表 - 其中列“类型”是字段的类型,例如 int 或 varchar) * id * 类型 * 名称
值:* id * User_id - (FK user.id) * Field_id - (FK field.id) * value
所以我们在 USER 表中的每一行都有一个用户,并且配置文件存储在 VALUE 表中。位每个配置文件字段可能具有不同的类型(FIELD 表中的列“类型”),并且基于此,我希望将此值添加到适当类型的适当列中。