我正在创建一个与牙医有关的django项目。 每个客户都有自己的一套牙齿,所以我有一个模型客户和一个带有外键给客户的模型牙齿
有一项名为牙周病的检查,如果它有植入物(牙齿)等,它会存储关于每颗牙齿的一些信息,如Ginginal Margin探测深度。我想在我的项目中实现这一点。考虑到客户可能有多个牙周图,我决定将其作为模型实施。并且每个牙周病图模型具有许多牙周病图操作,其中每个人牙周病图操作包括关于每个牙齿的信息。所以它看起来像这样
class Customer(models.Model):
.....
Class Tooth(models.Model):
customer = models.ForeignKey(Customer)
class Periodontogram(models.Model):
customer = models.ForeignKey(Customer)
date = models.DateField()
class PeriOperation(models.Model):
tooth = models.ForeignKey(Tooth)
peri = models.ForeignKey(Periodontogram)
#rest of work done per tooth
implant = models.BooleanField()
ginginal_margin1 = models.IntegerField()
#...more
前端在后端发送json数据以保存它。所以为了妥善保存,我必须
但是如果在创建每个牙齿的操作时某些操作失败会发生什么。 peri将被保存,但不会进行任何操作。处理它的最佳方法是什么?
答案 0 :(得分:5)
您应该使用数据库事务,以便将所有数据保存到数据库中,或者不保存任何内容。您可以在此处阅读有关交易的更多信息
https://docs.djangoproject.com/en/dev/topics/db/transactions/
您可能还需要检查MySql处理事务的方式: