gpt4 book ai didi

mysql - 我可以避免 django (python) 的 MySQL 表中的冗余主键列吗?

转载 作者:行者123 更新时间:2023-11-29 07:06:40 24 4
gpt4 key购买 nike

我知道,如果我使用 Django 的 ORM,每个表都必须有一个主键列。不知何故,如果你有一个链接到表(我们称它们为作者和书籍)的多对多表,你会得到类似的东西:

id     author_id     book_id
1 1 1
2 1 2
3 2 3
etc.

我遇到过一本书,书中建议避免使用“id”列,而是创建一个复合主键。这对 django 有用吗?

最佳答案

您可以在直通表上创建复合主键(使用 ALTER TABLE)。您还可以从表中删除 id 列。这些都不会以某种方式损害 django,因为 ManyToMany 字段在后端工作的方式无论如何都不会使用 id 列。

但是您应该注意,让复合 PK 在 django 中工作基本上是不可能的。这对您来说应该不是问题,因为任何表都不应该有外键到您的直通表(至少出于我能想到的任何原因。

综上所述。复合主键不适用于 django。因此,如果您需要使用具有复合 PK 的表的外键,您基本上就是 SOL。最后,这里没有关于使用复合 PK 的真正优点,但也没有真正的缺点(在这个也是唯一的情况下)。那你为什么要花时间担心这个呢?

关于mysql - 我可以避免 django (python) 的 MySQL 表中的冗余主键列吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6928770/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com