作者:阿连AND王进_893_799 | 来源:互联网 | 2023-02-11 13:31
我Many to Many
与之间有关系jobs
,eqtypes
因此我制作了第三个表,名为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
表结构时显示以下通知:
未定义分区!
由于缺少独立的主键(即e),导致此消息是否与分区有关id
?还是表的组合主键定义不正确?有关部分的通知是否会对将来的性能产生负面影响?!
1> Isaac Bennet..:
不,该消息并没有说明您的表结构有任何问题。从语法和UI方面来说,具有感叹号有点奇怪,但是这里没有问题。
分区是一种将数据存储在磁盘上的方式。您在“结构”页面上看到的区域涉及分区(参见照片),并且在未配置任何分区时,您会看到警报的通知。
如果配置了分区,您将看到以下参数:
因此,您可以放心地忽略该页面的“分区”部分。