主键可作为组合唯一键的一个列吗?
我们公司的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不这么认为,请问大家有什么高见?
解决方案 »
- mysql set names '' 和 character_set_connecttion,character_set_results区别
- mysqldump 备份和还原数据库 设置编码utf-8怎么做
- 无法连接远程mysql服务器
- ACMAIN_CHM大哥,请问::inet的问题
- mysql启动不了了
- 兄弟姐妹们帮一个忙!!!!!!
- 在哪能下载MYSQL是LINUX版本的。还有在LINUX下的MYSQL的JDBC驱动程序。
- mysql下载
- Mysql 安装的时候出错求助!!
- 在这个表中搜索最大销量的mysql语句怎么写?
- Excel导入mysql,数据类型如何设定的问题?
- 计算机哪方面好就业?
我在项目中从来没有这样去用unique
主键 + N键 没有意义,除非是想用index。说是保证唯一这玩笑开大了
引用楼主 helen1978 的回复:
但我们公司的DBA不这么认为,请问大家有什么高见?你们DBA怎么认为的
他说理论上他也说不清,是俄罗斯人,说英语说得很快,沟通很难。反正大意这样是有用的意思。