django - 在 Postgres 中表示政策人口数据的最佳方式

标签 django database postgresql

我想构建一个 Django 服务,用户可以在其中为某些人群定义一些策略。

政策样本:

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 中表示该数据的最佳方式,我考虑了两个数据库关系:

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

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

最佳答案

听起来很适合 JSONField .

关于django - 在 Postgres 中表示政策人口数据的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37239338/

相关文章:

python - 通过请求模块调用 View 不会创建正确的 session 数据

database - CoInitialize错误在线程内使用数据库

mysql - 最佳实践列结构

sql - Postgres 条件选择?

python - 如何断开 django 信号?

python - 在 Django 管理员中,添加通用关系的内联

jquery - 如何重新排列 Django 数据库中保存对象的顺序

xml - 马克逻辑 8 : Cannot load a XML document to MarkLogic database using cURL

postgresql - 将 Symfony 项目连接到 docker 数据库

ruby-on-rails - 外键约束确实会导致 N+1 查询但没有约束,预加载工作正常