2017-02-19 50 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字段。

相關問題