Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.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
Sql Django-只有一个字段的模型可以吗?_Sql_Django_Django Models - Fatal编程技术网

Sql Django-只有一个字段的模型可以吗?

Sql Django-只有一个字段的模型可以吗?,sql,django,django-models,Sql,Django,Django Models,在五年级的时候,当我们学习如何概述一篇研究论文时,我们的老师告诉我们,你永远不应该有一个要点。我觉得我违反了这条规则,也许还有更好的办法 我有一个型号,Movie,它有title和year等字段。我还想包括流派。然而,电影可以分为多种类型。所以我觉得我需要一种多对多的关系。但我并不想让Genre成为自己的模型类,因为只有一个字段,Genre.Genre。我觉得这是不对的。我知道我可能会有一个类型是查菲尔德和分离的类型与某种分隔哨兵,即行动|冒险|喜剧。但这是最好的方法吗 我计划对该数据库运行原始

在五年级的时候,当我们学习如何概述一篇研究论文时,我们的老师告诉我们,你永远不应该有一个要点。我觉得我违反了这条规则,也许还有更好的办法

我有一个型号,
Movie
,它有
title
year
等字段。我还想包括
流派
。然而,电影可以分为多种类型。所以我觉得我需要一种多对多的关系。但我并不想让
Genre
成为自己的模型类,因为只有一个字段,
Genre.Genre
。我觉得这是不对的。我知道我可能会有一个类型是查菲尔德和分离的类型与某种分隔哨兵,即
行动|冒险|喜剧
。但这是最好的方法吗


我计划对该数据库运行原始SQL查询,因此简单性现在具有很高的价值。

对于具有单个属性的模型,没有这样的一般质量规则。由于电影可以有多个类型,而且类型显然可以属于多个电影,因此在这里,一个
manytomy
关系可能是您的最佳拍摄方式

另一种选择是在模型中有一个
类型
文本字段
,并将所有类型保存为逗号分隔的列表。这种方法的许多明显问题之一是,您无法按类型高效地查询电影,并且无法保证同一类型的电影不会在两个不同的电影实例中写得不同

如果您使用的是PostgreSQL,另一个选项是将
genres
定义为
CharField
s的类型。用每种可能的类型定义一个常量,并将其传递给您的
CharField


恐怕没有这样的规定。将
类型作为一个单独的模型是有意义的。因此,查询所有类型并访问属于该类型的电影会更直接

如果您仍然感到奇怪,请在
类型
模型中添加
创建时间
创建用户
字段。以后您会发现它很有用。

试试或。这样,就不需要用逗号分隔选项,因为类型选择字符串本身可能包含逗号。
COMEDY = 'COMEDY'
ADVENTURE = 'ADVENTURE'
ACTION = 'ACTION'
# ...

GENRE_CHOICES = (
    (COMEDY, 'Comedy'),
    (ADVENTURE, 'Adventure'),
    (ACTION, 'Action'),
    # ...
)