Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django JSON与PostgreSQL中的表_Django_Postgresql_Relational Database - Fatal编程技术网

Django JSON与PostgreSQL中的表

Django JSON与PostgreSQL中的表,django,postgresql,relational-database,Django,Postgresql,Relational Database,我正在尝试制作一份调查问卷,并正在考虑两种数据结构: JSON:我可以使用JSON存储不同的问题,如下所示: { "questions": [ { "question": "how old are you?", "type": "input_int", }, "question": "what is your name", "type": "input_stri

我正在尝试制作一份调查问卷,并正在考虑两种数据结构:

JSON:我可以使用JSON存储不同的问题,如下所示:

{
    "questions": [
        {
            "question": "how old are you?",
            "type": "input_int",
        },
            "question": "what is your name",
            "type": "input_string",
        },
        {
            "question": "how are you today?",
            "type": "multiple_choice",
            "options": [
                "good",
                "bad"
            ]
        },
    ]
}
InputIntTable
- Question
- Order

InputStringTable
- Question
- Order

MultipleChoiceTable
- Question
- Options
- Order
或每种类型问题的表格:

{
    "questions": [
        {
            "question": "how old are you?",
            "type": "input_int",
        },
            "question": "what is your name",
            "type": "input_string",
        },
        {
            "question": "how are you today?",
            "type": "multiple_choice",
            "options": [
                "good",
                "bad"
            ]
        },
    ]
}
InputIntTable
- Question
- Order

InputStringTable
- Question
- Order

MultipleChoiceTable
- Question
- Options
- Order

我用的是Django。哪种方法在计算、结构和成本方面都更适合宿主。哪个需要更多的存储空间?谢谢

如果您不需要对问题类型或任何其他问题字段进行频繁筛选,则可以使用Json结构。但如果将问题保存为Json,则无法进行查询。所以我认为你应该用桌子。Json应仅用于保存仅用于显示或需要用作dict IMHO的数据。但是,如果需要像ORM提供的那样进行查询,则应该使用表

您应该有如下模型:

问题:

  • 问题:
  • 命令
  • 类型
  • 选项(字符串列表,类型为“input\u int”或“input\u string”时为空)
不需要为不同的类型创建不同的模型,因为这样所有的问题都将出现在不同的表格中

如果将问题保存为Json,则不能使用列表、创建细节等rest视图

简而言之,请使用表格。

----编辑----

问题

  • 问题:
  • 命令
  • 类型
选项

  • 选项(字符串列表)
  • 问题(问题模型的外键)

如果不需要对问题类型或任何其他问题字段进行频繁筛选,可以使用Json结构。但如果将问题保存为Json,则无法进行查询。所以我认为你应该用桌子。Json应仅用于保存仅用于显示或需要用作dict IMHO的数据。但是,如果需要像ORM提供的那样进行查询,则应该使用表

您应该有如下模型:

问题:

  • 问题:
  • 命令
  • 类型
  • 选项(字符串列表,类型为“input\u int”或“input\u string”时为空)
不需要为不同的类型创建不同的模型,因为这样所有的问题都将出现在不同的表格中

如果将问题保存为Json,则不能使用列表、创建细节等rest视图

简而言之,请使用表格。

----编辑----

问题

  • 问题:
  • 命令
  • 类型
选项

  • 选项(字符串列表)
  • 问题(问题模型的外键)

我明白了,为什么我不需要为不同的类型使用不同的型号?我知道这不好,但我看不到其他办法。谢谢你的帮助!!如果你需要的话,我可以帮助你,让我知道你不明白在一个模型中做什么。我的意思是,如果我要扩大问题类型的数量,那么我可能有100个不同类型的问题。如果我想提出一个基本的字符串问题,可能会有大约100个空的模型字段。那会占用空间吗?或者这是一种不好的做法?是的,你是对的,在这种情况下,它会占用空间,这是一种不好的做法。但我们也可以通过创建一个新的选项模型来满足它,并且只在我们遇到“多选”类型的问题时才创建它。给我几分钟,我会更新我的答案。还有一件事,不管有多少种类型,在当前的方法中,一个问题只有一个空值。我明白了,但是我必须为每个答案类型创建一个新的模型?是吗?我明白了,为什么我不需要为不同的类型使用不同的型号?我知道这不好,但我看不到其他办法。谢谢你的帮助!!如果你需要的话,我可以帮助你,让我知道你不明白在一个模型中做什么。我的意思是,如果我要扩大问题类型的数量,那么我可能有100个不同类型的问题。如果我想提出一个基本的字符串问题,可能会有大约100个空的模型字段。那会占用空间吗?或者这是一种不好的做法?是的,你是对的,在这种情况下,它会占用空间,这是一种不好的做法。但我们也可以通过创建一个新的选项模型来满足它,并且只在我们遇到“多选”类型的问题时才创建它。给我几分钟,我会更新我的答案。还有一件事,不管有多少种类型,在当前的方法中,一个问题只有一个空值。我明白了,但是我必须为每个答案类型创建一个新的模型?对吗?