模型中的额外id

b5buobof  于 2021-06-19  发布在  Mysql
关注(0)|答案(2)|浏览(333)

我正在尝试建立属于某个项目的报表列表。每个项目可以有多个报告。每个报表必须有唯一的id,即:1、2、3等。。我将所有报表存储在一个表中,这就是为什么我不能使用django的autofield,因为我已经将它用作主键。

class Cawreport(models.Model):
    caw_id = models.AutoField(primary_key=True)
    project = models.ForeignKey(Project, on_delete=models.CASCADE)
    # report_id is unique for each project
    report_id = models.IntegerField(default=1)

为每个新报表增加报表id的最佳方法是什么?你有什么建议?您是否建议我为每个项目查找最大数量(报告id)?或者,我应该“计数”每个项目的报告id条目并添加+1吗?或者完全不同的东西?
提前谢谢
编辑:我想有这个:项目1:cawreport1,cawreport2,等等。。。项目2:cawreport1、cawreport2等。。。
我想实现一些类似的发票软件,你不能删除和发票没有被注意到。我的客户的客户不希望我的客户能够删除一个cawreport并继续在序列中的下一个数字。实际上,他们通常重用现有的cawreport,而不是删除它并创建一个新的cawreport。

xdyibdwo

xdyibdwo1#

主键对于数据库中的每条记录都是唯一的,所以当您添加与项目相关的新报表时,它将自动唯一。您可以轻松地对表中的项目报表进行排序。也可以在报表中添加日期字段进行排序。

class Cawreport(models.Model):
    project = models.ForeignKey(Project, on_delete=models.CASCADE)
    datetime =  models.DateTimeField(auto_now=True)

因此,不需要跟踪与项目相关的报告的最新id。

a6b3iqyw

a6b3iqyw2#

你需要一个 UUIDField 而不是 IntegerField/AutoField .

相关问题