5

我有以下数据库情况:

wp_users (user table generated by wordpress)
ID | user_login | ... 

wp_sp_user (extension to the wp_users table)
ID (FK) | surname | address | ... 

现在我已经尝试了几个小时将这两个表“融合”成一个User实体,例如:

class User {
  var ID;
  var user_login;
  var surname;
  var address;
  ...
}

有没有办法在不修改wp_user表的情况下完成这样的映射(出于更新原因我不想这样做)?

4

2 回答 2

17

有时数据库重构是不可能的,或者表有他自己的“存在理由”。在这种情况下,您可以使用继承。您的用户类可以扩展帐户。将 Account 映射到 wp_users 并使用 wp_sp_user 表对其进行扩展。用户类将使用两个表的列。

这是教义文档:

https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/inheritance-mapping.html

于 2013-09-27T08:46:57.963 回答
-6

这是不可能的。这样做也没有意义。

您需要在 MySQL 中将这些表物理合并在一起,并为该表创建一个 Doctrine 实体。这是确保数据干净且完全标准化的唯一方法。

另一种可能的解决方案是为每个表创建一个实体,并使用业务对象来组合每个表的结果。这根本不是一个很好的解决方案,因为您必须处理应用程序层上的约束,并且您将启动的查询量增加一倍。

于 2011-08-25T23:47:59.123 回答