python - 我可以使用复合主键代替 ID 主键吗?

标签 python mysql sqlalchemy

我目前有一个数据库设置,其中有 5 列设置为复合主键,可以唯一标识一行。我还应该有一个 ID 列来标识每一行吗?这似乎是多余的,虽然我不确定什么是标准的。

我正在使用 SQLAlchemy。我注意到,当我将 5 列作为复合主键时,与使用 ID 列相比,表从 CSV 文件插入数据的速度要慢得多。列的速度只有一半(不确定这是否相关)。

明确一点:我的问题是,我是否应该在复合主键旁边有一个 ID 列,即使 ID 列是多余的?

最佳答案

是的,您应该始终有一个单独的 rowid(基于 int 的 one-up 或 UUID)。特别是当你进入 mysql 或数据库 DevOps 的其他方面时,拥有该 ID 字段是一个救星(例如,复制或 galera 集群)。它还使使用 django 等框架变得更加容易。

关于python - 我可以使用复合主键代替 ID 主键吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41529910/

相关文章:

python - 如何使用 Doxygen 记录 Python 代码

python - 如何将多个数据框写入一张 Excel 工作表?

javascript - 如何使用 Selenium/Python 模拟 onclick (JavaScript)

python - 如何获取我的模型所附加的 session ID?

python - 如何在 Python 中为 Postgres 自动生成 UUID?

python - SQLAlchemy 等同于 Django 的 annotate() 方法

python - 如何将数字更改为科学数字并获得最小值(科学数字格式)

PHP MySQL 日期大于

date - 将当前日期添加到文件名时出现 mysqldump 错误

php - 使用数组从 mysql 表中选择