2017-02-19 51 views
0

A当我创建包含两个表的数据库时(TopicsCategories,其中每个主题都被分类),我没有打扰如何正确建模这两个表之间的关系因为我对MySQL和数据库一般都没有经验。在MySQL中两个现有/已填充表之间添加关系

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

现在我不得不改变一些类别名称,我很遗憾这个决定,因为除了改变它之外,我不得不吸收Topics表中的所有相关条目。这很容易用正确的MySQL语句完成,但这是一个非常混乱的解决方案。

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

主题:

+----+------+----------+------+ 
| Id | Name | Category | Date | 
+----+------+----------+------+ 

分类:

+------+-------------+ 
| Name | Description | 
+------+-------------+ 

我很感激每一个解决方案或提示是它的命令行或phpMyAdmin的!

回答

1

添加ID来分类:

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

添加类别ID,以主题:验证之后

UPDATE `topics`, `categories` SET `topics`.`Category_Id` = `categories`.`Id` WHERE `topics`.`Category` = `categories`.`Name` 

ALTER TABLE `topics` ADD `Category_Id` INT NOT NULL AFTER `Name`; 

然后更新基于分类的类别ID一切都很好,更改任何代码topicsCategory用JOIN连接表并使用categories。代替Name,然后删除categoriesName字段。

相关问题