1

假设我想建立一个电子邮件数据库。由于我不了解电子邮件的结构,我可能会将电子邮件存储在一个只有基本属性的简单表中:

Emails
   email_id   integer (PK)
   from       varchar(200)
   sent       timestamp
   email      blob

但后来我决定我毕竟了解电子邮件的结构,并希望扩展我的数据库以将整个电子邮件表示为结构化数据,而不仅仅是一个 blob。我可能会使用适当的外键和关联表创建一个 EmailAddress 实体、一个 MIME 实体、一个 Header 实体。

但是我现在可以在我的数据库中做什么,以期待有一天将 blob 解压缩到子模式中?

4

3 回答 3

1

不要为此使用关系数据库。

使用文档数据库或其他一些无模式数据存储

于 2012-06-27T20:26:57.170 回答
1

考虑将其存储为结构化格式(例如 XML),以便以后可以有效地将数据转换为适当的格式。

于 2012-06-27T20:27:29.993 回答
0
  • 通过实现访问层来屏蔽未来的模式更改。使用视图读取,存储过程(或触发器)写入底层表——避免从应用层直接访问表。

  • 考虑锚建模方法,它使用 6NF 并且非常适合不断变化 - 模式演变。锚建模收费会自动创建视图和触发器作为访问层。

于 2012-06-28T11:36:07.213 回答