【发布时间】:2017-01-08 14:11:30
【问题描述】:
我目前有一个数据库设置,其中有 5 列设置为可以唯一标识行的复合主键。我还应该有一个 ID 列来标识每一行吗?这似乎是多余的,虽然我不确定什么是标准的。
我正在使用 SQLAlchemy。我注意到,当我将 5 列作为复合主键时,与我有一个 ID 列相比,从 CSV 文件插入数据的表要慢得多。列的速度只有一半(不确定这是否相关)。
明确一点:我的问题是,我是否应该在复合主键旁边有一个 ID 列,即使 ID 列是多余的?
【问题讨论】:
-
所以您仍然将 5 列标识为 UNIQUE,而不是 PRIMARY?
-
我只将这些字段标记为主要字段。我的印象是主键必须是唯一的。但我可以将它们标记为应有的独特性。列的唯一性和主要性是否可以替代没有 ID 列?
标签: python mysql sqlalchemy