假设有一个数据库表,只有一列,这是一个PK。更具体地说,这是一个 django 项目,数据库位于 mysql 中。
如果我需要一个包含所有唯一值的附加列,我应该创建一个具有唯一整数的新 UniqueField,还是只编写一个类似散列的函数来将每个现有行(模型实例)的现有 PK 转换为新的唯一变量。当前的 PK 是一个 varchar/& 字符串。
创建新列会消耗更多内存,但我认为编写新函数并频繁转换字段也有缺点。有什么想法吗?
最佳答案
在任何现代数据库系统中,拥有字符串值 PK 都不应该成为问题。 PK 会自动索引,因此当您使用 table1.pk = 'long-string-key'
等条件执行查找时,它不会是字符串比较,而是索引查找 -向上。因此,无论键值的长度如何,都可以使用字符串值 PK。
无论如何,如果您需要一个包含所有唯一值的附加列,那么我认为您应该添加一个新列。
关于python - 数据库设计,添加额外的列与使用函数转换现有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17393291/