您好,您可以帮我解决以下情况吗?
1. News:
- id
- post
- member_nickname (foreign key to member.nickname) (author of the news)
- date
2. Chronicle:
- id
- event_id (foreign key to event.id)
- member_nickname (foreign key to member.nickname) (author of the chronicle)
- route
- content
3. Event:
- id
- calendarevent_id (foreign key to calendarevent)
- timestart
- timeend
- member_nickname (foreign key to member.nickname) (leader of the event)
- text
注意:在所有三种情况下,member.nickname可以是不同的人)
- event : chronicle - 1:1
- news : (chronicle or event) - 1:1
问题是如何用外键设计第二关系?键的名称也必须是 table.column 形式。如有必要,我可以添加一些额外的表格。
答案 0 :(得分:0)
您需要在新闻中添加两列:
a)chronicleid - 新闻项目与之挂钩的编年史
b)eventid - 新闻项目与之关联的事件
答案 1 :(得分:0)
一种解决方案是同时拥有编年史和编年史。在新闻中偶然,他们两个都可以允许null。 然后你可以有一个编年史或一个事件,或者没有或两者都有。
如果您真的想要编年史或事件,那么您可以添加一个检查约束来执行此操作。