我有一个数据库设计和关系的问题,我关心可能的循环引用。
举个例子,杰克的库存中有药品A、B和C。药品A和B有active_ingredient AI1,药品C有active_ingredient AI2。
杰克去看医生,医生给他开了AI1。对于处方对象来说,服用A药还是B药无关紧要。
下面是一个示例代码:
class ActiveIngredient(models.Model):
...
class Medicine(models.Model):
quantity = models.IntegerField()
active_ingredient = models.ForeignKey("ActiveIngredient", on_delete=models.CASCADE)
class Person(models.Model):
...
class PersonStock(models.Model):
customer = models.ForeignKey("Person", on_delete=models.CASCADE)
medicine = models.ForeignKey("Medicine", on_delete=models.CASCADE)
expiration_date = models.DateField()
class Prescription(models.Model):
...
quantity = models.IntegerField()对这种关系进行建模的最佳解决方案是什么?
将处方更改为:
class Prescription(models.Model):
...
customer = models.ForeignKey("Person", on_delete=models.CASCADE)
active_ingredient = models.ForeignKey("ActiveIngredient", on_delete=models.CASCADE)
quantity = models.IntegerField()在我看来似乎是错误的,因为已经有PersonStock类连接了Person和me。
https://stackoverflow.com/questions/56346957
复制相似问题