说我想建立一个电子邮件数据库。由于我不理解电子邮件的结构,我可能会将电子邮件存储在一个只有基本属性的简单表中:
Emails
email_id integer (PK)
from varchar(200)
sent timestamp
email blob
但后来我决定理解电子邮件的结构,并希望扩展我的数据库以将整个电子邮件表示为结构化数据而不仅仅是blob。我可能会创建一个EmailAddress实体,一个MIME实体,一个Header实体,带有适当的外键和关联表。
但是我现在可以在我的数据库 中做些什么,以期有一天将blob解压缩到子模式中?
答案 0 :(得分:1)
不要为此使用关系数据库。
答案 1 :(得分:1)
考虑以结构化格式(例如XML)存储它,以便您以后可以有效地将数据转换为适当的格式。
答案 2 :(得分:0)
通过实现访问层来掩盖未来的架构更改。使用视图进行读取,存储过程(或触发器)以写入基础表 - 避免从应用层直接访问表。
考虑锚建模方法,它使用6NF并且非常适合于不断变化 - 模式演化。锚建模收费会自动创建视图和触发器作为访问层。