未在多对多共轭中定义分区 table
No partitioning defined in Many to Many conjugation table
我在 jobs
和 eqtypes
之间有 Many to Many
关系,所以我创建了第三个 table 命名为 eqtype_jobs
。但是,在这个关系的共轭、归一化、table中我并没有做一个独立的主键,比如id
,我只是把job_id
和eqtype_id
都设置为主键。以下是table结构:
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
省略的第一个table。我还有其他的多对多关系,我以前在其中使用过 id
。但是,phpMyAdmin 在显示 eqtype_jobs
table 结构时显示以下通知:
No partitioning defined!
由于缺少独立的主键,导致此关于分区的消息的原因,即 id
?还是table的复合主键没有定义好?!这个关于部分的通知是否会对未来的性能产生负面影响?!
不,该消息并没有说您的 table 结构有任何问题。从语法和UI方面来说,感叹号有点奇怪,但是这里没有问题。
Partitioning 是一种划分数据在磁盘上存储方式的方法。您看到的结构页面区域处理分区(见图),当没有配置分区时,您会看到警告您的通知。
如果配置了分区,您将看到参数:
因此您可以安全地忽略该页面的分区部分。
我在 jobs
和 eqtypes
之间有 Many to Many
关系,所以我创建了第三个 table 命名为 eqtype_jobs
。但是,在这个关系的共轭、归一化、table中我并没有做一个独立的主键,比如id
,我只是把job_id
和eqtype_id
都设置为主键。以下是table结构:
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
省略的第一个table。我还有其他的多对多关系,我以前在其中使用过 id
。但是,phpMyAdmin 在显示 eqtype_jobs
table 结构时显示以下通知:
No partitioning defined!
由于缺少独立的主键,导致此关于分区的消息的原因,即 id
?还是table的复合主键没有定义好?!这个关于部分的通知是否会对未来的性能产生负面影响?!
不,该消息并没有说您的 table 结构有任何问题。从语法和UI方面来说,感叹号有点奇怪,但是这里没有问题。
Partitioning 是一种划分数据在磁盘上存储方式的方法。您看到的结构页面区域处理分区(见图),当没有配置分区时,您会看到警告您的通知。
如果配置了分区,您将看到参数:
因此您可以安全地忽略该页面的分区部分。