2016-08-16 46 views
0

我有一個基於Javascript的UI和基於Jersey的REST服務的Web應用程序。 UI具有某些需要複雜搜索條件才能檢索數據的功能。用戶界面定義了各種參數的搜索條件,但對此討論最重要的是這個。用戶可以像這個 -在數據庫中存儲過濾條件

1. ( Receiver_Email_ID   CONTAINS   [email protected]     AND 

2.  Sender_Email_ID    CONTAINS   [email protected]  ) OR 

3. ( Origin_Domain     IS   BADDOMAIN.com    AND 

4.  Email_has_attachment   ==   true     ) 

創建過濾器,數字1至4只是表明這些不同行的UI和序列在這裏很重要。用戶界面以JSON格式表示它,在服務器上可以作爲POJO接收。 我需要能夠存儲這個標準,使得UI可以通過過濾器重新填充,並且可以執行它。與其他幾張表一起,我計劃使用下面的數據庫表來存儲這個 -

rule_id 
rule_seq 
op_paren 
left_opr 
operator 
right_opr 
cl_paren 
and_or 

它看起來是正確的還是我可以改進它?我擁有的另一個選擇是將整個JSON存儲在嵌入式文檔數據庫(如OrientDB)中。

+0

嗨,你能解釋一下嗎?謝謝 –

回答

0

從正式的角度來看,每個搜索條件是Abstract syntax tree這不適合你的結構。從這個角度來看,您在OrientDB中保存搜索的想法非常適合,但實現起來並不簡單。

相關問題