添加MySQL中两个现有/已填充表之间的关系

添加MySQL中两个现有/已填充表之间的关系,mysql,phpmyadmin,foreign-keys,Mysql,Phpmyadmin,Foreign Keys,不久前,当我创建一个包含两个表的数据库时(Topics和Categories,其中每个主题都是分类的),我没有考虑如何正确地建模这两个表之间的关系,因为我对MySQL和数据库总体上非常缺乏经验 我的简单方法是在Topics表的category列中插入类别名称 现在,我不得不更改一些类别名称,我对这个决定感到遗憾,因为除了更改它之外,我还必须吸收主题表中的所有相关条目。使用正确的MySQL语句很容易做到这一点,但这是一个非常混乱的解决方案 因此,我想知道是否仍然可以将预期的关系添加到现有表中。到目

不久前,当我创建一个包含两个表的数据库时(
Topics
Categories
,其中每个主题都是分类的),我没有考虑如何正确地建模这两个表之间的关系,因为我对MySQL和数据库总体上非常缺乏经验

我的简单方法是在
Topics
表的
category
列中插入类别名称

现在,我不得不更改一些类别名称,我对这个决定感到遗憾,因为除了更改它之外,我还必须吸收
主题
表中的所有相关条目。使用正确的MySQL语句很容易做到这一点,但这是一个非常混乱的解决方案

因此,我想知道是否仍然可以将预期的关系添加到现有表中。到目前为止,我已经尝试了在类似主题中找到的一些方法,但大多数都是针对其他问题。
主题
类别列和
类别
名称列共享相同的值可能会有所帮助:类别的名称

主题:

+----+------+----------+------+
| Id | Name | Category | Date |
+----+------+----------+------+
类别:

+------+-------------+
| Name | Description |
+------+-------------+
enter code here`ALTER TABLE `categories` ADD `Id` INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`Id`);

我感谢每一个解决方案或提示,无论是命令行还是phpmyadmin

将ID添加到类别:

+------+-------------+
| Name | Description |
+------+-------------+
enter code here`ALTER TABLE `categories` ADD `Id` INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`Id`);
将类别ID添加到主题:

ALTER TABLE `topics` ADD `Category_Id` INT NOT NULL AFTER `Name`;
然后根据类别更新类别ID:

UPDATE `topics`, `categories` SET `topics`.`Category_Id` = `categories`.`Id` WHERE `topics`.`Category` = `categories`.`Name`
确认一切正常后,使用联接更改引用
主题
类别
的任何代码,以连接表,并改用
类别
名称
,然后删除
类别
名称
字段