如何使用时间戳和功能处理数据库设计?

时间:2016-08-01 22:31:02

标签: mysql database database-design time entity-attribute-value

我正在MySQL中设计一个数据库,并且有几个关于如何定义表和列的问题。

现在,我有一个实体(我们称之为Entity1),它将具有可能随时间变化的几个(5-10)特征。我还需要能够随着时间的推移添加功能。我正在考虑2种设计:

1:1表包含Entity1信息,1表包含时间戳,然后是每行中给定时间戳的所有功能。这样可以更轻松地强制执行所有功能之间的连接。

2:1表包含Entity1信息,每个功能包含1个表,每个表都有一个添加该行的时间戳。这将减少我在数据库中存储的冗余数据量。

这些设计中的任何一个都是理想的吗?我应该看一些数据库文献吗?我是数据库设计的总菜鸟。

由于

1 个答案:

答案 0 :(得分:0)

考虑创建2个表:实体表和要素表。

entity(id,...)

功能(id,entity_id_foreign_key,feature_name,created_timestamp,feature_value)

如果特征值都是相同的类型,它将起作用。好的是,如果要添加或删除功能,则不需要触摸架构,因此不需要迁移。