插入关系结构

时间:2012-10-22 19:03:49

标签: sql sql-server database insert relational-database

我们应该创建关系数据库,而不是平面结构。您可以创建与其他表关系的表。您规范化以删除重复,并取消规范化以提高性能。这一切都有道理。但是,我很难找到一个插入关系结构的好机制。是否没有将记录插入关系结构的良好机制。是否有类似的东西:

INSERT INTO x LEFT JOIN y ON x.id = y.id VALUES(...)?

我能想到的最好的是存储过程:

INSERT INTO x
SELECT id FROM x (or @@id)
INSERT INTO y

这似乎与整个关系模型相反......

它的插入等同于没有连接。我们会不得不做多次选择并自己一起加入结果?

1 个答案:

答案 0 :(得分:1)

  

您规范化以删除重复,并取消规范化以改进   性能。

您规范化以删除某些类型的更新异常。您反规范化以提高SELECT性能,通常以更新性能和更新异常为代价。

关系模型本身不仅支持可更新视图,而且需要可更新视图。但据我所知,这仍然是一个研究领域;技术问题很重要,特别是在大多数情况下你必须支持视图更新时。

目前的SQL产品充其量只提供有限的支持。 (并且SQL与关系相差甚远。)多年来,我认为如果我们想要可更新的视图,我们都期望必须编写触发器。

在某些时候,无论您是在应用程序代码,触发器还是存储过程中执行此操作,您都会发现自己陷入了包含在事务中的多个INSERT语句。