主键可作为组合唯一键的一个列吗?
我们公司的DBA,俄罗斯人,建了一个表,SQL如下:CREATE TABLE floors (
floor_id INT AUTO_INCREMENT PRIMARY KEY,
building_id INT,
floorNum INT,
UNIQUE (floor_id,building_id),
FOREIGN KEY (building_id) REFERENCES buildings (building_id)
) ENGINE=InnoDB;我不能理解,因为我认为:
如果组合唯一键包含了主键,那么其他列值就算是重复的,这个组合肯定也是唯一的。
因此:包含主键的组合唯一键是无意义的,只会浪费数据库资源。
但我们公司的DBA不这么认为,请问大家有什么高见?
我们公司的DBA,俄罗斯人,建了一个表,SQL如下:CREATE TABLE floors (
floor_id INT AUTO_INCREMENT PRIMARY KEY,
building_id INT,
floorNum INT,
UNIQUE (floor_id,building_id),
FOREIGN KEY (building_id) REFERENCES buildings (building_id)
) ENGINE=InnoDB;我不能理解,因为我认为:
如果组合唯一键包含了主键,那么其他列值就算是重复的,这个组合肯定也是唯一的。
因此:包含主键的组合唯一键是无意义的,只会浪费数据库资源。
但我们公司的DBA不这么认为,请问大家有什么高见?
我在项目中从来没有这样去用unique
主键 + N键 没有意义,除非是想用index。说是保证唯一这玩笑开大了
引用楼主 helen1978 的回复:
但我们公司的DBA不这么认为,请问大家有什么高见?你们DBA怎么认为的
他说理论上他也说不清,是俄罗斯人,说英语说得很快,沟通很难。反正大意这样是有用的意思。