【发布时间】:2011-09-23 13:40:15
【问题描述】:
我有两个主要(复合)键,它们分别指向一家商店和一家分店。 我想我应该为每一行使用一个对应的 ID,所以我添加了一个名为 ID 的 UNIQUE + AUTO_INCREMENT。
所以我在表上有一个名为 ID (AUTO INCREMENT) 的列,但它被声明为 PRIMARY - 这是自动完成的,我不希望 ID 是 PRIMARY。只有商店和分店。
我已经学会了如何欺骗 MYSQL 将 ID 字段接受为 UNIQUE 和 AUTO INCREMENT,因为制作 AUTO_INCREMENT 并不是非常简单(它想将其设为 PRIMARY)。 我必须删除 ID 字段(由于某种原因它不允许我删除它的 PRIMARY 索引),然后将其声明为 INDEX,然后才使用 AUTO INCREMENT。
这是一个好方法吗? 这个设计有什么我做错了吗?
谢谢!!!
【问题讨论】:
-
拥有不是主键的自动增量 ID 有什么意义?主键越短越好,在 InnoDB 中使用自增作为主键有优势
标签: mysql database-design indexing unique auto-increment