【发布时间】:2011-11-25 05:36:05
【问题描述】:
当我创建具有外键关系的模型时,如下所示:
class Post(models.Model):
title = models.CharField(max_length=250)
date_created = models.DateTimeField(auto_now=False, auto_now_add=True)
owner = models.ForeignKey(User)
当我使用 syncdb 将这些模型转储到数据库时,它会创建表 post 和表 user 的外键。如何避免在 MySQL 中创建该外键。我讨厌外键有不同的原因。
谢谢!
编辑:
请大家不要回答:“你应该使用外键”。这不是我要问的。我有理由不使用它们。
【问题讨论】:
-
我很好奇。你为什么讨厌外键?然后你会在你的代码中手动强制引用完整性吗?
-
如果你不想要外键,你应该从不使用models.ForeignKey开始
-
@santiagobasulto 您以错误的方式完全处理问题。如果您有一个不称职的 DBA(是的,我会将任何做事而不注意理解其含义的人定义为不称职,因为我无法立即想到一个更强大的术语),请处理它。不要把你的网站弄得一团糟。
-
“我有理由不使用它们。”您最好更新问题以详细说明其中的每一个原因。我见过没有好的理由。我真的很想知道为什么这很重要,因为它违反了关系数据库(和 Django ORM)的工作方式。
-
@santiago 我们并不是要侮辱您的智商。只是除了“防止意外删除”之外没有更多信息,看起来你似乎走错了路。所有问题都是为了检测/抢占 XY 问题 (meta.stackexchange.com/questions/66377/what-is-the-xy-problem/…)
标签: python mysql django foreign-keys