跳转到内容

WebObjects/EOF/Modeling/Entities

来自维基教科书,开放的书籍,为开放的世界
(重定向自 Programming:WebObjects/EOF/Modeling/Entities)

对象图中的实体通常代表 关系数据库 中的表。例如,假设正在处理一个学校。可能有一个数据库,其中包含一个学生表和一个教室列表。在标准的 SQL 风格表示法中,学生表可能被称为 STUDENT,教室表可能被称为 ROOM。将会有一个“学生”实体和一个“房间”实体。

将 ROOM 表称为该名称是一个深思熟虑的选择。它可以称为 CLASSROOM。但是,可以看出,教室实际上是任何用来放置学生并希望在那里可以教书的房间。因此,这些房间只是房间。可能还有其他更抽象的概念可以使用。可以决定,学生只是从 PERSON 列表中实例化的,这并不会出错。选择实体的抽象程度是一个选择和经验问题。

EOF 使用类 com.webobjects.eoaccess.EOEntity 来管理实体。

实体可能不是表。实体可以代表任何事物组,当以组的形式查看该组时,这很有用。

例如,可以决定使用 PERSON 表。表中可以有一列用于“isStudent”。还有其他方法可以做到这一点,但这是其中一种方法。在这种情况下,可以将“学生”实体定义为 PERSON 表中满足定义为“(isStudent == YES)”的 限定符 的对象。事实上,这就是使用 单表实体继承 设置实体的方式。

还可能有一些外部数据源,通过该数据源可以获取信息。例如,外部工具可以从纽约证券交易所检索价格信息。可以将“今天从纽约证券交易所收到的价格”列表建模为一个实体,尽管它是一个内容不稳定的实体。可以有一个望远镜向数据服务报告“视野中移动的物体”。这将是一个非常不稳定的实体。这个实体中可能没有物体出现两次,这与关系数据库的预期行为完全不同,但它仍然可以被视为一个实体。

华夏公益教科书