我有一个基于Javascript的UI和基于Jersey的REST服务的Web应用程序。 UI具有某些功能,需要复杂的搜索条件来检索数据。 UI使用各种参数定义搜索条件,但对此讨论最重要的是此。用户可以创建这样的过滤器 -
1. ( Receiver_Email_ID CONTAINS xyz@abc.com AND
2. Sender_Email_ID CONTAINS blocked@abc.com ) OR
3. ( Origin_Domain IS BADDOMAIN.com AND
4. Email_has_attachment == true )
数字1到4只表示这些是UI中的不同行,并且序列在这里很重要。 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中保存搜索非常适合任务,但实现并不简单。