Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
假设有一个包含一列的数据库表,它是一个 PK。为了让事情更具体,这是一个 django 项目,数据库在 mysql 中。
如果我需要一个包含所有唯一值的附加列,我应该创建一个具有唯一整数的新 UniqueField,还是只编写一个类似哈希的函数来将每个现有行(模型实例)的现有 PK 转换为一个新的唯一变量。当前的 PK 是一个 varchar/ & 字符串。
创建一个新列会消耗更多内存,但我认为编写一个新函数并经常转换字段也有缺点。有任何想法吗?
在任何现代数据库系统中,拥有一个字符串值的 PK 都应该不是问题。PK 是自动索引的,因此当您使用类似 的条件执行查找时table1.pk = 'long-string-key',它不会是字符串比较,而是索引查找。因此,无论键值的长度如何,都有字符串值的 PK 是可以的。
table1.pk = 'long-string-key'
无论如何,如果您需要一个包含所有唯一值的附加列,那么我认为您应该只添加一个新列。