Doctrine 2.1 - Map entity to multiple tables

MrMuh picture MrMuh · Aug 26, 2011 · Viewed 8.2k times · Source

I have the following database situation:

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

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

Now I've already been trying for hours to "fuse" those two tables into one single User entity, e.g:

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

Is there any way to accomplish such a mapping without modifying the wp_user table (which I don't want to do for updating reasons)?

Answer

TlmaK0 picture TlmaK0 · Sep 27, 2013

Some times database refactoring is not possible or the table has his own "raison d'être". In this cases you can use inheritance. Your User class can extens Account. Map Account to wp_users and extend it with wp_sp_user table. User class will use columns of the two tables.

Here is the doctrine documentation:

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