【发布时间】:2017-02-19 15:48:39
【问题描述】:
我在jobs 和eqtypes 之间有Many to Many 关系,所以我创建了第三个名为eqtype_jobs 的表。但是,在这个关系共轭、归一化、表中我并没有创建一个独立的主键id,例如我只是将job_id和eqtype_id都设置为主键。以下是表结构:
CREATE TABLE `eqtype_jobs` (
`job_id` int(10) UNSIGNED NOT NULL,
`eqtype_id` int(4) UNSIGNED NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Indexes for dumped tables
--
--
-- Indexes for table `eqtype_jobs`
--
ALTER TABLE `eqtype_jobs`
ADD PRIMARY KEY (`eqtype_id`,`job_id`),
ADD KEY `job_id` (`job_id`);
--
-- Constraints for dumped tables
--
--
-- Constraints for table `eqtype_jobs`
--
ALTER TABLE `eqtype_jobs`
ADD CONSTRAINT `eqtype_jobs_ibfk_1` FOREIGN KEY (`job_id`) REFERENCES `jobs` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `eqtype_jobs_ibfk_2` FOREIGN KEY (`eqtype_id`) REFERENCES `eqtypes` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
这是我使用独立主键id 省略的第一个表。我以前使用过其他多对多关系和id。但是,phpMyAdmin 在显示eqtype_jobs 表结构时显示如下提示:
未定义分区!
由于没有独立的主键,即id,导致此消息的原因是否与分区有关?还是表的复合主键没有定义好?!这个关于部分的通知是否会对未来的性能产生负面影响?!
【问题讨论】:
标签: mysql phpmyadmin many-to-many relational-database composite-primary-key