首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >django模型-在数据库设计中避免可能的循环引用

django模型-在数据库设计中避免可能的循环引用
EN

Stack Overflow用户
提问于 2019-05-29 00:57:57
回答 1查看 65关注 0票数 0

我有一个数据库设计和关系的问题,我关心可能的循环引用。

举个例子,杰克的库存中有药品A、B和C。药品A和B有active_ingredient AI1,药品C有active_ingredient AI2。

杰克去看医生,医生给他开了AI1。对于处方对象来说,服用A药还是B药无关紧要。

下面是一个示例代码:

代码语言:javascript
运行
复制
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()

对这种关系进行建模的最佳解决方案是什么?

将处方更改为:

代码语言:javascript
运行
复制
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。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56346957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档