我有一个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