【发布时间】:2009-10-08 23:03:33
【问题描述】:
我有 3 个 mysql 表:事件、艺术家和(艺术家)描述。它们都是多对多的关系。
表“事件”:
ID | eventTitle | etc.
-----------------------
1 | event 1 |
2 | event 2 |
etc.
表“艺术家”:
ID | artistName | etc.
-----------------------
1 | artist 1 |
2 | artist 2 |
etc.
表“描述”:
ID | artistDesc | etc.
----------------------------------
1 | artist 1 description 1 |
2 | artist 1 description 2 |
3 | artist 2 description 1 |
4 | artist 2 description 2 |
5 | artist 3 description 1 |
etc.
我还制作了联结表events_artists 和artists_desctriptions。它们都只有 2 个外键,仅用于链接事件、艺术家和描述 ID。
在我的描述表中注意 - 每个艺术家可以有许多描述。这实际上意味着每个描述只属于一个特定事件。 =)
如果我这样查询:
$q = "SELECT
events.*,artists.*,descriptions.*,events_artists.*,artists_descriptions.*
FROM
events,artists,descriptions,events_artists,artists_descriptions
WHERE
events.eventID = events_artists.eventID AND
events_artists.artistID = artists.artistID AND
artists.artistID = artists_descriptions.artistID AND
artists_descriptions.descID = descriptions.descID";
我将获得特定艺术家的所有描述。但是没有一个描述会知道它们属于哪个事件...... 我想向用户显示的是这样的:
活动 1
艺术家 1(艺术家 1 描述 1)
艺术家 2(艺术家 2 描述 2)
活动 2
艺术家 3(艺术家 3 描述 6)
艺术家 1(艺术家 1 描述 3)
等等
我应该为事件描述关系制作一个联结表吗?如果我这样做,我不知道如何使用它,哎呀! =) 或者也许我的问题无法通过简单的查询来解决?我也应该用 php 做点什么吗?对不起,我完全糊涂了=)
我希望我能正确解释我的问题...
提前感谢您的帮助!
【问题讨论】: