python - 数据库设计,添加额外的列与使用函数转换现有列

标签 python mysql django

假设有一个数据库表,只有一列,这是一个PK。更具体地说,这是一个 django 项目,数据库位于 mysql 中。

如果我需要一个包含所有唯一值的附加列,我应该创建一个具有唯一整数的新 UniqueField,还是只编写一个类似散列的函数来将每个现有行(模型实例)的现有 PK 转换为新的唯一变量。当前的 PK 是一个 varchar/& 字符串。

创建新列会消耗更多内存,但我认为编写新函数并频繁转换字段也有缺点。有什么想法吗?

最佳答案

在任何现代数据库系统中,拥有字符串值 PK 都不应该成为问题。 PK 会自动索引,因此当您使用 table1.pk = 'long-string-key' 等条件执行查找时,它不会是字符串比较,而是索引查找 -向上。因此,无论键值的长度如何,都可以使用字符串值 PK。

无论如何,如果您需要一个包含所有唯一值的附加列,那么我认为您应该添加一个新列。

关于python - 数据库设计,添加额外的列与使用函数转换现有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17393291/

相关文章:

python - 不导入的随机int 'random'

Python从报告中更改数据结构

python - 散列 Numpy 对象以进行缓存的快速方法

php - 添加好友功能 - 好友已添加

Django:复杂的注释/预取查询

python - 如何使用 celery-beat 启动任务?

python - float 随机(?!)精度怪癖

mysql - 如何在SQL中查询字典类型列值?

php - Symfony2/Doctrine 不会创建多对多关系

javascript - 类型错误 : Object of type 'Category' (model) is not JSON serializable