我有一個數據庫,我正在運行大型查詢,我想用視圖進行簡化。雖然有更多的人,這些表基本上是這樣的(僞代碼):SQL Server視圖設計
TABLE document (
Id int PRIMARY KEY,
/*more metadata columns*/
)
TABLE name (
Id int PRIMARY KEY,
documentId int FOREIGN KEY REFERENCES document.Id,
date DATETIME,
text varchar(MAX)
)
TABLE description (
Id int PRIMARY KEY,
documentId int FOREIGN KEY REFERENCES document.Id,
date DATETIME,
text varchar(MAX)
)
這樣的想法是,「文檔」表包含有關關係的其餘部分的文檔和標識的基本信息表格到文檔。所有其他表格都是針對可更新文檔的各個屬性。每個更新都有一個帶有時間戳的行。我希望視圖拉的是每個文檔一行,每個文檔包含其他表中包含的每個屬性的最新版本(如果需要進一步闡述或示例,請讓我知道,我將提供)。什麼是我可以把它取消的最不可思議的方式?使用SQL Server 2008.
@marc_s,我很感激您花時間編輯我的文章,但我不認爲將標題從「SQL視圖設計」更改爲「SQL Server視圖設計」是有保證的。這個問題的解決方案很可能與平臺無關,因此對於那些使用微軟以外的數據庫軟件的人來說是有用的。 – joelmdev
如果你想要一個快速,高效的視圖,那麼沒有便攜式解決方案。 「SQL Server」的事實非常重要:這將是醜陋的,因爲在MySQL中犯罪,例如 – gbn
請原諒我對MySql的無知,但是沒有物化視圖會爲類似代碼帶來類似的性能提升嗎? – joelmdev