我想将给定的ER图与(min,max)符号转换为表,并且我不确定" trainieren" -relation的主键是什么。
如果关系R介于A和B之间并且:
我将(0,1)和(1,1)解释为一,而(1,3)和(1,*)一样多,因此 我的解决方案是(强文中的主键)trainieren:{[ Trainer.AkkrNr ,Teams.Land]}
答案 0 :(得分:1)
通常,我们尝试仅使用一个或多个基数指标,因为这些指标很容易映射到表格结构。大多数数据建模器都会像放弃上限一样简化模型。
如果要强制执行该限制,可以通过以下几种方式实现它:
trainieren
的主键和约束以将其限制为值1,2和3.但是,这会强制排序不是概念模型的一部分trainieren
更改为(Teams.Land PK, Trainer1.AkkrNr, Trainer2.AkkrNr, Trainer3.AkkrNr)
。 Trainer2和Trainer3需要可以为空,这种设计失去了每个培训师只属于一个团队的约束。你可以用触发器解决这个问题。呸。由于没有理想的方法来实现关系基数的上限,大多数数据建模者将遵循与您相同的方法,并将其留给数据库客户端(通常是应用程序逻辑)来强制执行限制。