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'),
# ...
)