首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >避免循环依赖

避免循环依赖
EN

Stack Overflow用户
提问于 2013-02-21 09:51:19
回答 1查看 8.4K关注 0票数 8

我正在开发一个旅行管理应用程序。所讨论的设计如下:

旅游中的每一个人都被指定为旅行者。每个旅行者都有护照。现在,旅行者可以是MainMember或SubMember,这取决于他是否是一家之主。一个MainMember决定像TourPackage,他的旅行家庭的总金额,等等。SubMember在旅行时依赖于MainMember。因此,如果一个MainMember被删除,那么它的所有SubMembers也必须被删除。

旅行者有护照。(一对一的关系)旅行者要么是MainMember,要么是SubMember。(1到0/1在旅行者-主成员和旅行者-子成员之间)一个MainMember可能有几个SubMembers。(一对多) SubMember只有一个MainMembers。(多对一)

我目前的ERD如下所示。

如您所见,这三个表-- Traveler、MainMember和SubMember --形成了一个循环依赖关系。不过,我不确定这是否会损害我的申请。如果我删除一个旅行者谁是MainMember,那么1.一个记录从旅行者被删除。2.删除了相关的MainMember记录。3.删除依赖于SubMember的MainMember记录。4.删除了SubMembers的旅行者记录。

虽然这似乎不是一个问题,因为一个旅行者-主成员删除将永远只删除旅行者-子成员(S)。尽管如此,我还是有一种不好的预感。

有人能引导我找到更好的设计吗?

更新-

在等待回复的同时,我根据@Daveo的答复提出了另一个设计方案。基本上,Traveler包含自引用外键.它将被SubMember记录用来识别他们的父母。

这是那个的ERD。

现在,由于在我以前的设计中没有循环依赖的问题,正如@布兰科所指出的那样,我想知道哪个设计更好?

另外,哪种设计更适合通过Hibernate来实现?我认为第二种方法在通过Hibernate实现时可能会导致复杂性。

我也希望了解一些关于实现模式的提示( Hibernate实体中的继承,等等)。你喜欢的设计。

EN

回答 1

Stack Overflow用户

发布于 2013-02-21 10:05:14

我在数据库中只会有两个表。

旅客及密码

旅行者将有一个Parent_Id字段,该字段将链接回旅行者表,并将存储主/头旅行者是谁。另外,在本表中存储主/子成员共同的字段,如联系人号码

然后使用继承和ORM在实际应用程序中创建两个不同的类。MainMember和SubMember MainMember将是Traveller中的所有行,其中Parent_Id为空,SubMember将是Traveller中的所有行,而Parent_Id不为空。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14999131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档