【发布时间】:2012-04-11 01:03:12
【问题描述】:
我有一个场景,我将不同的参数与数据库中的值一起保存。参数可以有多种类型。即
字符串, 整数, 多值
因为它是一对多的关系,所以我为它创建了两个表。
parameter
---------
id | name
parameter_value
---------------
id | parameter_id(F.K) | value
现在另一种参数类型被添加到需求中。即“地图”。所以一个参数可以是一个映射。地图可以有其他参数。 我在根据这个新要求设计数据库表时遇到问题。我需要创建新表还是更改现有表? 使用 IBM DB2。
【问题讨论】:
-
您可能应该提及您正在使用的数据库平台,因为不同的系统可能有不同的功能适用于此。但本质上,您是在问如何/是否实现 EAV 模型。
-
我不知道 EAV 模型,也不想实现它。只想使用简单的表。使用 DB2。
-
@imran:为什么不为每个类型使用单独的表,并使用另一个表将每个参数名称与类型名称相关联?
-
@imran tariq:我正在使用 Oracle 的 Berkeley DB Java 版 来存储键/值对,其中的值是由非结构化“参数”组成的映射。如果您的数据不是结构化的,那么 SQL 不一定是最佳选择。
标签: java database database-design map