说,我们有2个实体:父母和孩子。
删除父级后,所有子级也会被删除。
大
现在我们有名为情人的实体。
每个人都可以“爱”许多其他人并被许多人所爱。
如果个人被删除会怎样?
是否级联删除:
或者什么?
答案 0 :(得分:1)
我认为,你不应该以这种方式使用cascade,因为它删除你删除的对象的所有爱好者,它可能会越走越远并删除整个数据库。
因此,更好的方法是拥有一个中间(“连接”)实体,例如 loverInfo 。 根据朋友关系,这就是Apple如何建议您这样做。
最初被建模为多对多关系的关系的一个常见例子是“朋友”。虽然你是表弟的堂兄,无论他们喜欢与否,但你不一定是你朋友的朋友。对于这种关系,您应该使用中间(“连接”)实体。中间实体的一个优点是您还可以使用它来为关系添加更多信息 - 例如,“FriendInfo”实体可能包含一些关于具有“排名”属性的友谊强度的指示。这在这里说明
在这个例子中,Person与FriendInfo有两对多的关系:朋友代表源人的朋友,而朋友则代表那些将来源统计为他们的朋友的人。 FriendInfo代表一个友谊的信息,“在一个方向上。”给定的实例记录了源是谁,以及他们认为是他们的朋友的一个人。如果感觉是相互的,那么将会有一个相应的实例来交换源和朋友。在处理这种模型时还有其他一些注意事项:
要建立从一个人到另一个人的友谊,你必须这样做 创建一个FriendInfo的实例。如果两个人都喜欢对方,那么 必须创建两个FriendInfo实例
要破坏友谊,您必须删除相应的实例 FriendInfo。