頁面中查詢模組的設計與實現思路

2021-08-29 16:04:44 字數 1532 閱讀 6647

二 萬能查詢

三 便捷查詢

總結在做乙個物品的展示管理頁面,想把增刪改查都放到頁面中,用axure畫了乙個頁面,比較簡單,主要分為上下兩部分,上半部分是查詢模組,下半部分是**,用來展示資料。新增按鈕單獨在頁面中,修改按鈕在表的每一行資料後面,刪除按鈕在**下面,將**中的資料每一行設為可選,選擇後進行刪除操作。查詢部分沒有考慮很多,只是列了幾個物品的主要屬性,有下拉框有文字框,可選可填,然後查詢,其實預設的就是這些查詢條件之間是「與」的關係。

圖1 自己設計的查詢模組

專案在討論的時候,技術領導說了一下這個地方設計的問題,也提了一些設計思路。下來之後,自己查資料看了看相關的查詢設計,總結了幾種查詢(或者稱檢索、過濾等)的設計與實現思路,查詢種類的名稱自己起的,可能不太嚴謹,技術實現主要針對後台資料庫,談一談實現的思路。

圖2 智慧型查詢例項

圖3 萬能查詢例項

這種查詢可以將查詢條件任意的組合,每個查詢條件都是乙個鍵值對,鍵值對由字段和字段的值構成,比如cnki的期刊檢索,可以將多個條件進行邏輯組合,篇名有hello,篇名有kitty,主題有haha,主題有test等,再加上與,或,非的邏輯關係,查詢條件就是篇名有hello而且有kitty,或者主題有haha並且沒有test的期刊。可以在查詢條件中將所有的屬性都列出來,再用與或非邏輯組合,這種查詢方式很通用,針對不同的資料,只需要更改屬性就可以了,也就是資料的字段,可以做到一次程式設計,到處使用,所以稱為萬能查詢。不過這種查詢方式,不是太友好,需要使用者輸入的東西比較多,操作起來相對麻煩,只適用於特定的場合,比如cnki,資料量大,查詢比較開放。

這類查詢後台實現相對簡單,可以直接根據頁面的查詢條件,拼接查詢語句。比如關係型資料庫的sql語句,and、or、not都是現成的語法,可以將組合的條件直接轉換為sql語句,然後到資料庫中進行查詢,可以很快得到結果。

圖4 便捷查詢例項

為了方便使用者查詢,便捷只把那些特別重要的屬性列出來,供使用者選擇,也可以看作是過濾,條件不斷疊加,範圍逐漸縮小,直到找到要查詢的物品。比如京東想購買一款筆記本,通過電腦整機–>筆記本–>家庭使用,然後再新增其他條件,**、品牌、尺寸、處理器、記憶體等,最後得到自己想要的結果。這類查詢,會把使用者關注的屬性都列出來,然後讓使用者選擇,操作簡單,容易上手,介面比較友好,用的比較多。

這類查詢是層層過濾的,使用者每增加乙個查詢條件後,就將該條件放到快取中,結果顯示出來,再增加條件,把這個條件與前面的條件進行疊加,在查詢結果中進行二次查詢,再次得到結果。具體實現,可以將查詢結果放到臨時快取中,下一次查詢在快取結果中查詢,可以提高查詢效率。

查詢模組是頁面中比較常用的乙個模組,頁面中經常會碰到,原來沒有太注意,這次多看了一下,找到了這麼幾種,簡單做下記錄,如果有其他比較典型的查詢設計,也希望朋友們不吝賜教。

SAP Spartacus 的頁面設計思路

cms提供了page structure,但不提供clear layout definition.所謂cms page structure,即cms只提供了乙個有序清單,包含了slots和component資訊。slots自身,並沒有包含應該如何在layout裡渲染的元資料。所以,sap spart...

秒殺設計思路與實現

前言實現 有彩蛋哦 1.控制每個人每個商品 只能10s請求一次 可根據業務酌情考慮,也可不加這條限制 2.如果此人已經秒殺了該商品 查詢該人該秒殺商品的訂單 不允許再次秒殺 3.檢查記憶體中商品是否售完,如果售完返回商品售馨 4.將redis中該商品個數 1 如果返回的值小於0 表示商品已經售馨,將...

投票模組的設計與實現

投票功能在日常上網中隨處可見,特別是在bbs中。它不但直觀的反映了對某種事物的看法,而且能很好的聚集人氣。那麼就開始對投票這個功能模組進行設計。第一讓我們看看流程圖 這是個很簡單的應用系統就是負責寫入資料庫在顯示出來給使用者 現在開始實現這個功能 首先我在mysql資料庫中建立如下的表 這三個分別對...