我目前有一个数据库设置,其中有5列设置为复合主键,可以唯一标识一行。我是否还应该使用ID列来标识每一行?这似乎是多余的,虽然我不确定什么是标准的。
我正在使用SQLAlchemy。我注意到,当我将5列作为复合主键时,与使用ID列相比,从CSV文件插入数据的速度明显变慢。它是柱子速度的一半(不确定这是否相关)。
要明确:我的问题是,我是否应该在复合主键旁边有一个ID列,即使ID列是多余的?
答案 0 :(得分:-1)
是的,你应该总是有一个单独的rowid(基于int的one-up或UUID)。特别是当你进入mysql或数据库DevOps的其他方面时,拥有该ID字段是救生员(例如,复制或galera集群)。它还使得像django这样的框架更容易使用。