为了账号安全,请及时绑定邮箱和手机立即绑定

如果Entity 不是数据库中的实体对象应如何编写?

  1. 第一种情况数据库有 user 表的实体 ,但是有一些扩展信息是需要通过第三方API 获取 没有本地存储

  2. 第二种情况是 user 表也没有,全部通过api获取用户信息(包括userId),但是有和用户多对多的关系属性。比如用户的所浏览过的商品 (关系表) 【userid,productId】

正在回答

1 回答

根据 Doctrine 官网文档的定义,在使用 Doctrine 时,PHP 的对象 (Objects) 需要存储到数据库时,这些对象被称为实体 (Entities),使用实体标识的对象都有一个唯一标识 (identity) 。

Every PHP object that you want to save in the database using Doctrine is called an “Entity”. The term “Entity” describes objects that have an identity over many independent requests. 

单从定义的条文来看,您所说的 "Entity 不是数据库中的实体对象" 是不是跟 Doctrine 中的定义有冲突?

所以会不会您所说的 Entity 其实不应该定义为 Entity,它其实是一个普通类,这个普通类包含的信息是一个真正的 Entity 的数据和一些第三方 API 获取的数据。

当然,是不是可以将该类定义为一个 Entity,但把该类内的一部分字段映射到数据库表中,而另一部分则不映射到数据库表。这样,在操作时,与数据库有映射关系的字段就会通过 Doctrine 来获取到数据,与数据库没有映射关系的字段则通过第三方 API 来获取数据。但我觉得这不是一个好的设计方法。

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

如果Entity 不是数据库中的实体对象应如何编写?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信