我有一個MySQL數據庫6張桌子,我需要彼此連接(6個項目必須在任何可能的方式有關)。我還需要爲這些關係添加一個「sort_order」列。 使用「古典ManyToMany」連接表會導致一個混亂的數據庫,有數十個連接表。這是不可能維持的。 我能找到的最佳解決方案是使用7列的單個連接表(6個項目id + 1用於sort_order),其中每行標識2個表之間的單個關聯。最佳MySQL數據庫設計多多對多關係
這裏是連接表我做:
mysql> desc relations;
+------------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------+------+-----+---------+-------+
| artist_id | int(11) | YES | MUL | NULL | |
| art_id | int(11) | YES | MUL | NULL | |
| edition_id | int(11) | YES | MUL | NULL | |
| expo_id | int(11) | YES | MUL | NULL | |
| news_id | int(11) | YES | MUL | NULL | |
| press_id | int(11) | YES | MUL | NULL | |
| sort_order | int(11) | YES | | NULL | |
+------------+---------+------+-----+---------+-------+
7 rows in set (0,00 sec)
因爲我不是數據庫設計的專家,我想可能有更好的設計來達到同樣的目的。什麼是最好的設計?注意1:請不要告訴我,我應該避免太多的關聯:這是項目的一個特別的和確切的需求,我只需要找到最好的解決方案使之成爲可能。注意2:順便說一下,這是一個Php/MySql Web應用程序,我使用Yii作爲框架。
下一次請從您的終端複製/粘貼到問題中。突出顯示和ctl-k格式化代碼塊。 –
完成。剛剛編輯... – taseenb