2012-01-10 76 views
2

您將如何爲高級CMS/sitebuilder設計查詢構建器?如果我通過讓用戶選擇受影響的表開始的,然後應該顯示,所有列那麼標準,排序順序和限制的結果,我可能有足夠多的信息來做出這樣querys:設計SQL查詢構建器

SELECT df.gh, yu.df FROM df, yu WHERE df.id != yu.id AND df.other == yu ORDER BY df.something LIMIT 0,10 

但對於更復雜querys,像子querys,加入,工會等?我需要收集哪些信息才能對要生成的查詢類型做出正確的判斷?

我不是在這裏要求代碼,這只是我卡在我的思考如何設計的事情,哪些問題,我需要問用戶?

對於更簡單的類型查詢,就像上面那樣,它非常直接,我在頭腦中有一個流程的圖片 - 但是我想我對其他查詢類型的知識還不夠,甚至沒有知道我需要收集什麼信息才能製作一個。任何有關如何建設這樣的設計想法將不勝感激!

另一個問題,這些「先進」查詢對於開發有多重要?我正在研究的CMS thingy也會有一些類型的腳本引擎,所以如果總是可以解決使用代碼的任何問題,我就不需要支持子查詢,聯合,聯接等等。你認爲最低要求是什麼?

我產生的任何東西當然都是開源的,所以按照我的方式拋出任何想法 - 我有一些編碼可以開始。 ;-)

+0

我只是從檢查Microsoft Access中的一個並從中竊取想法開始。 – Blazemonger 2012-01-10 21:13:50

回答

2

幾年前,我與esperant合作。它是一個查詢生成器和報告工具。世界語允許用戶編寫自己的查詢語言,也可以用類似英語的語言編寫。並且還有嚮導來製作查詢。我喜歡的世界語是它可以簡化一個複雜的查詢,分裂它在幾個命名查詢。

當調用Esperant嚮導時,會出現一個模態窗口,用戶可以嘗試幾種查詢風格:簡單查詢(從多個表中選擇字段並生成條件),查詢,組合查詢。你可以用recicle來創建新的。

所有這些工具都有一個semantical layer abstraction通知工具關於表關係(可以做連接)。

我也曾與其他OLAP和報告工具。這時用MS SSASTableau Software

+1

鏈接已死亡。這可能會更好:http://www.freschelegacy.com/en/data-sheets/esperant-query-and-reporting-tool-better-business-decisions 雖然看起來很舊。 – archangel76 2015-02-16 22:28:54

+0

@ archangel76你安裝了它嗎?哇。 – danihp 2015-02-17 07:27:53

+0

沒辦法。我只是修復了這個鏈接。 – archangel76 2015-02-24 14:34:08