前一段时间我创建的数据库包含两个表(Topics
和Categories
,其中每个主题都被分类)我没有打扰如何正确建模这两个表之间的关系因为我对MySQL和数据库一般都没有经验。
我的简单方法是只在Category
表的Topics
列中插入类别名称。
现在我必须更改一些类别名称,我对此决定感到遗憾,因为除了更改它之外,我必须同化Topics
表中的所有相关条目。使用正确的MySQL语句可以轻松完成,但这是一个非常混乱的解决方案。
所以我想知道是否仍然可以在现有表格中添加预期的关系。到目前为止,我已经尝试了一些我在类似主题中发现的方法,但大多数都是关于其他问题。 Topics
类别列和Categories
名称列共享相同的值可能会有所帮助:类别的名称。
主题:
+----+------+----------+------+
| Id | Name | Category | Date |
+----+------+----------+------+
分类
+------+-------------+
| Name | Description |
+------+-------------+
我感谢每个解决方案或提示,无论是命令行还是phpmyadmin!
答案 0 :(得分:1)
为类别添加ID:
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`
验证一切正常后,更改引用topics
。Category
的所有代码并使用JOIN连接表并使用categories
。Name
代替,然后删除categories
。Name
字段。