Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.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
Python 我应该如何用django编写模型(这个例子有点具体)?_Python_Django_Django Models_Data Structures - Fatal编程技术网

Python 我应该如何用django编写模型(这个例子有点具体)?

Python 我应该如何用django编写模型(这个例子有点具体)?,python,django,django-models,data-structures,Python,Django,Django Models,Data Structures,我现在处于一个有点奇怪的情况,因此这个问题。假设我有一个游戏,我有一个网站,显示所有玩家的统计数据。现在我的问题是,我有很多关卡,我想在我的网站上向每个玩家展示个人最佳状态(至少没有移动或时间)和每个关卡的数据。现在,如果我必须为每个玩家存储所有这些数据,我会怎么做?最初我想为什么不为一个玩家各设一张表,上面有等级no、个人最好成绩等等栏。但是,如果我有100个玩家,那么我会有100个表(或者在django的例子中是模型),查询排行榜和其他东西会成为一个问题。因此,我认为下一个最好的解决方案是可

我现在处于一个有点奇怪的情况,因此这个问题。假设我有一个游戏,我有一个网站,显示所有玩家的统计数据。现在我的问题是,我有很多关卡,我想在我的网站上向每个玩家展示个人最佳状态(至少没有移动或时间)和每个关卡的数据。现在,如果我必须为每个玩家存储所有这些数据,我会怎么做?最初我想为什么不为一个玩家各设一张表,上面有等级no、个人最好成绩等等栏。但是,如果我有100个玩家,那么我会有100个表(或者在django的例子中是模型),查询排行榜和其他东西会成为一个问题。因此,我认为下一个最好的解决方案是可能有一个表(模型),其中有玩家姓名,列的数量与级别相同,每个条目的值将是他们个人的最佳值。但是,如果我添加了更多级别,可伸缩性就会成为一个问题,它也不是一个优雅的解决方案

所以这是我的问题,从技术上讲,这对django或我可能放置的任何标签都不是很重要。但我觉得可能有人更了解我所面临的问题,可以教我或者为我指出一个优雅的解决方案


一如既往,我非常感谢你的回答

为什么每个玩家都需要一张桌子?你只需要一个带有外键的表就可以了,而且你也不需要每个级别的列。您只需要三个字段:玩家、级别、分数。为每个玩家创建一个记录,其中包含要存储的数据字段。这基本上是一个标准化的数据库。每个玩家的表都是反模式的。有一个通用模型(类)来充分描述用户。@DanielRoseman好的,我明白你的意思,但我希望玩家字段是主键,因为那样我就不会有重复的玩家名字,不像外键的情况,看到相同的名字出现在25个级别有点混乱,特别是在你进入管理面板查看之后。为什么你需要每个玩家都有一个表?你只需要一个带有外键的表就可以了,而且你也不需要每个级别的列。您只需要三个字段:玩家、级别、分数。为每个玩家创建一个记录,其中包含要存储的数据字段。这基本上是一个标准化的数据库。每个玩家的表都是反模式的。有一个通用模型(类)来充分描述用户。@DanielRoseman好的,我明白你的意思,但我希望玩家字段是主键,因为那样我就不会像外键那样重复玩家的名字,看到相同的名字出现在25个关卡上有点混乱,尤其是在你进入管理面板查看之后。