[英]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.