2016-11-04 188 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是組織者(外鍵)。