我有以下表格: 1)事件 2)议程 3)Registrant_Type 4)费用
关系: 议程事件:一对多(一个事件由零个,一个或多个议程组成;一个议程仅属于一个事件)
Registrant_Type事件:一对多(一个事件由零个,一个或多个注册人类型组成;一个注册人类型只属于一个事件)
活动费用:一对一(一项活动仅包含一项费用(注册费))
费用议程:一对一(一个议程只包含一项费用(议程费))
注册人_类型到费用:一对一(一种注册人类型只包含一项费用(注册费))
如何根据这些关系创建表?
答案 0 :(得分:0)
将事件的外键放入议程中。在registrant_type中放置事件的外键。
对于一对一关系,您有两个可行的选项:
这将有效,但不会强制执行关系所具有的规则 是1:1而不是1:多。如果要强制执行该规则, 您需要在应用程序中或使用触发器执行此操作。
这会强制实施1:1的关系,因为PK不具备重复值。您的费用PK可以自动递增,但是您必须手动设置其他表中的PK以对应于费用中的匹配记录。如果您不能先将费用添加到数据库中(例如,如果您先创建事件,然后再决定费用是多少),这将无法正常工作。