簡體   English   中英

如何在mysql中創建具有多個表的關系?

[英]How to create a relation with multiple tables in mysql?

我現在在做什么,可能會誤會:

users:
id,name

actions:
id, user_id

events:
id, action_id, description

posts
id, event_id, text

我想要的是:

用戶可以創建許多動作。

一個動作可以有一個事件

一個事件可以有多個帖子,但應該僅與一個事件有關

“竅門”是我希望我的操作包含很多帖子,因此我認為創建Event表是正確的。

假定這種關系應該建立什么樣的關系?

由於An Action can have many posts but should be related to just one Event ,所以這是一個簡單的聯接。

SELECT users.*, actions.*, events.*, posts.* FROM users 
LEFT JOIN actions ON users.id = actions.user_id 
LEFT JOIN events ON actions.id = events.action_id
LEFT JOIN posts ON events.id = posts.events_id

如上面的評論中所述,如果一個動作僅將只有一個事件並且該事件是該動作唯一的事件,則不需要事件表-這意味着該事件將來不會被另一個動作使用行動。


關於您在上面的評論, An Action can have many posts but should be related to many Events ,但這不會改變聯接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM