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