我现在在做什么,可能会弄错:
users:
id,name
actions:
id, user_id
events:
id, action_id, description
posts
id, event_id, text
我想要的是什么:
用户可以创建许多操作。
一个动作可以有一个事件
一个事件可以有很多帖子,但应该只与一个事件相关
"技巧"我希望我的动作有很多帖子,所以我假设创建事件表是对的。
假设这种情况应该建立什么样的关系?
答案 0 :(得分:0)
从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
以上的评论,这不会改变联接。