所以我很惊讶在Google和stackoverflow上进行搜索不会返回更多结果。
在OO编程中(我正在使用Java),如何正确实现一对多关系?
我有一Customer
堂课Job
。我的申请是针对一家虚构的公司,该公司可以为客户完成工作。我当前的实现是使Job
该类与Customer
该类无关,根本没有对其的引用。本Customer
类使用的集合和方法来保持,检索和修改有关已被分配和/或完成客户作业的信息。
问题是,如果我想找出特定客户针对哪个客户,该Job
怎么办?我只发现了相关的文章:http :
//www.ibm.com/developerworks/webservices/library/ws-tip-
objrel3/index.html
。
根据作者的实现,我将让Job
构造函数接受一个Customer
参数,并将其存储起来以便可以检索它。但是,我完全无法保证该模型可以保持 一致
。没有任何限制可以将相关客户设置为该工作不适合的客户,并将其添加到为其他人完成的客户中。任何帮助,将不胜感激。
没有100%的surefire方法可以保持完整性。
通常采用的方法是使用一种方法来构建关系,并使用相同的方法来构建另一方向。但是,正如您所说,这并不能阻止任何人弄乱它。
下一步将是使某些方法可打包访问,以便至少与您的代码无关的代码不会破坏它:
class Parent {
private Collection<Child> children;
//note the default accessibility modifiers
void addChild(Child) {
children.add(child);
}
void removeChild(Child) {
children.remove(child);
}
}
class Child {
private Parent parent;
public void setParent(Parent parent){
if (this.parent != null)
this.parent.removeChild(this);
this.parent = parent;
this.parent.addChild(this);
}
}
实际上,您不会经常在课堂上为这种关系建模。取而代之的是,您将在某种存储库中查找所有子代的父母。
这是项目迁移 这是时间表 这样用户就可以迁移了 这是我的项目模型 这是我的时间表模型: 这是我的用户模型 现在,我从项目返回我的查询 这是可以的,但user_id用户在timesheets.user_id我不能得到它的时间表,并得到它 此控制器按时间表中的项目id返回项目和时间表,但时间表中的用户id我不知道如何将其输入系统
在数据库表之间,绝大多数的关系很可能是一对多的关系,一个表中的记录有可能与另一个表中的许多记录相关。 创建一对多关系的过程与创建一对一关系完全相同。 让我们先通过单击设计 选项卡上清除布局 选项清除布局。 再添加另一个表,如以下屏幕截图所示。 点击保存图标并输入作为表名,然后转到关系视图。 点击显示表选项,然后选择两个表: 和 。如下所示 - 添加和并关闭显示表格对话框。 我们再次执行相同的操作过
我在hibernate中搜索建立关系的各种可能性,遇到了下面的代码片段
对于我正在构建的一个类似论坛的网站,我有PHP类'user'和'post‘。用户有一个帖子数组。如何与关系数据库中的连接相似?在“post”上有一个外键,指向一个“user”?这对我来说是有意义的,因为这是一对一的关系,而“user”到“post”是一对多的,就我所见。欢迎有任何想法-谢谢!
我正在学习冬眠,只是有点困惑。