2016-11-04 149 views
0

如何表示,作为一个图,在一个关系数据库(例如MySQL的)的情况下,其中:关系数据库,多对多

1)单个用户可以有许多不同的事件的组织者

2)一个事件只能有一个组织者

3)和事件可以有许多与会者(这是所有用户表之间)

4)用户可以参加许多活动(只有当事件不会从开始到结束)

这里碰撞到另一个事件是DB的草图,我已了解了这个多对多关系。 enter image description here

+0

我想你几乎已经拥有它了。我建议尽管Events_has_Users表被重命名为Users_Attending_Events。在这张表上,主键将是Users_UserId和Events_EventsId。这不需要Events Organizer,因为它在事件表中被定义为外键(Organizer)。 Events_has_Users表放置在那里以解决用户和事件之间的多对多关系。许多用户正在参加许多活动。我认为这是自动呈现在mysql-workbench中(即解决这个多对多的关系与表之间。 – barudo

+0

好男人谢谢,但仍然有一些错误,表事件不应该有组织者作为主键,我如何考虑一个事实,即一个用户可以参加很多事件,并且很多用户可以参加一个事件,因为事件表没有唯一的主键? – mattobob

+0

啊,也许我知道了Events_eventID和Users_userID是表Events_has_User的主键,对? – mattobob

回答

0

我想你几乎已经拥有它了。

现在,我建议将Events_has_Users表重命名为Users_Attending_Events,因为这会更清晰。在这张表上,主键将是Users_UserId和Events_EventsId,它们实际上是外键。主键和外键在Workbench中自动完成。

这不需要事件管理器,因为它在事件表中被定义为外键(管理器)。

这是一个更清晰的翻译。只需填写其他字段:

enter image description here

在表活动,users_id是组织者(外键)。