在数据库中存储过滤条件

时间:2016-08-16 15:55:09

标签: java json database database-design

我有一个基于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。

1 个答案:

答案 0 :(得分:0)

从正式的角度来看,每个搜索条件都是Abstract syntax tree它不适合您的结构。

,您认为在OrientDB中保存搜索非常适合任务,但实现并不简单。