复杂数据库表设计

时间:2012-03-27 13:33:02

标签: java database database-design map

我有一个场景,我用数据库中的值保存不同的参数。参数可以有多种类型。即。

的字符串, 整数, 多值

因为它是一对多的关系,所以我为它创建了两个表。

parameter
---------
id | name

parameter_value
---------------
id | parameter_id(F.K) | value

现在添加了另一个参数类型的要求。即'地图'。所以参数可以是地图。地图可以有其他参数。 我根据这个新要求设计数据库表时遇到问题。我是否需要创建新表或更改现有表? 使用IBM DB2。

1 个答案:

答案 0 :(得分:0)

你说“参数可以是多种类型。即String,Integer,Multivalue”。但像这样的表

parameter_value
---------------
id | parameter_id | value

只能存储一种类型,可能是某种varchar(n),其中'n'可能非常大。因此,应该是整数的参数最终可能会“晃动”。

此外,“Multivalue”在历史上不是关系型或SQL数据类型。 (这种情况正在发生变化。但变化很慢。)一些SQL平台支持某些类型的多个值,但支持远非普遍。 PostgreSQL,选择一个我非常熟悉的,支持数组,JSON(我认为,在最新版本中),以及键/值对(hstore模块)。其中一个可能会帮助你。我不确定。