2016-05-15 72 views
1

我想构建一个Django服务,用户可以在其中为某些人口定义某些策略。在Postgres中表示策略人口数据的最佳方式

政策样本:

default policy: 
{ 
"field1":{ 
     "rule1":"somerule", 
     "rule2":"somerule", 
     "rule3":"somerule" 
}, 
"filed2":{ 
    "rule1":"somerule", 
    "rule2":"somerule", 
    "moredata":[ 
     {"one":1,"two":2,"three":3}, 
     {"one":1,"two":2,"three":3}] 
}, 
"filed3":{} 
} 

人口抽样:

default population: 
{ 
"field1":[{"1":"some1"}, 
     {"2":"some2"}, 
     {"3":"some3"}], 
"filed2":[{"1":"some1"}, 
     {"2":"some2"}, 
     {"3":"some3"}], 
"filed3":[{"1":"some1"}, 
     {"2":"some2"}, 
     {"3":"some3"}] 
} 

我想找到代表PostgresDB该数据的最好的方法,我想过2分贝关系:

1 :

population to policy:   field to population: 

population policyId   field value   population 
pop1  56     field2 (lat,lon,rad) pop1 
pop2  999     field3 (lat,lon,rad) pop2 
pop3  3     field4 456    pop3 

2:

population to policy:   expression to population: 

population policyId   expression       population 
pop1  56     "filed1 AND filed4 OR filed2"  pop1 
pop2  999     "filed1 OR filed4 "    pop2 
pop3  3 

有什么更好的,有没有更好的方法来表示这种数据?

回答