我有一個數據庫有幾個表,其中5個專用於特定的發佈類型。這5箇中的每一個都與狀態表和人員表具有一對多關係。所有這些表都使用獨特的「pubid」捆綁在一起。我有一個視圖,其中包括pubid(所有5種類型)及其關聯的關鍵字。當用戶執行關鍵字搜索並且結果跨越這5個發佈類型表中的多個時,我真的不知道如何處理它。如何處理多個「一對多」關係?
如果只有一個單一的出版物類型(所以只是一個表有一個1->很多),這將是很容易與嵌套連接來完成的,是這樣的:
SELECT * FROM articles
INNER JOIN status ON articles.spubid = status.spubid
INNER JOIN people ON articles.spubid = people.spubid
WHERE people.saffil = 'ABC' ORDER BY people.iorder, articles.spubid;
在該示例'文章'是我提到的5個表格之一,具有1->多種關係。讓我們說關鍵字搜索帶來的結果,包括文章,書籍和文件。我怎樣才能達到與許多不同的表格相同的目標?如果我想知道如何在這種情況下使用JOIN,那麼笛卡爾積很大,我認爲將其解析爲可用格式的開銷太大。在這種情況下我有什麼其他選擇?
五個表格是否具有相同的模式?或者,您是否真的希望從五個表中選擇A,B,...,Z,其中選定的字段A-Z位於五個模式的交集中? – 2009-08-05 20:21:13
目前正在制定一些涉及views/mviews的解決方案 - 稍後會再提供一份報告/解決方案。 – 2009-08-07 15:59:36