跳转到内容

WebObjects/EOF/建模/实体

来自维基教科书,开放的书籍,为开放的世界

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

将我们的 ROOM 表命名为该名称是经过深思熟虑的选择。它本可以被称为CLASSROOM。然而,您可以看到,教室实际上是放置学生并希望他们能够接受教育的任何房间。因此,这些房间仅仅是房间。您可以使用其他更抽象的概念。您可以决定学生只是PERSON列表中的实例,这并不错误。选择实体的抽象程度是个人选择和经验问题。

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

实体可以是除表以外的其他事物。实体可以代表任何事物组,当将该组视为一个组时很有用。

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

您还可能有一些外部数据源,您可以从中获取信息。例如,一个外部工具可以从纽约证券交易所检索价格信息。来自纽约证券交易所的“今日接收的价格”列表可以建模为一个实体,尽管是一个内容不稳定的实体。您可以有一个望远镜向数据服务报告“视野中正在移动的物体”。这将是一个极其不稳定的实体。很可能没有对象会在此实体中出现两次,这与关系数据库的预期行为完全不同,但无论如何它可以被视为一个实体。

华夏公益教科书