Php 多账户类型?
我目前正在使用Symfony2和doctrine。我正在做一个“创建帐户”页面。页面上将提供两种不同类型的帐户,一种用于Php 多账户类型?,php,database,symfony,doctrine-orm,class-table-inheritance,Php,Database,Symfony,Doctrine Orm,Class Table Inheritance,我目前正在使用Symfony2和doctrine。我正在做一个“创建帐户”页面。页面上将提供两种不同类型的帐户,一种用于普通用户,另一种用于公司 我有一个名为Account的实体(表)。这个表包含username、password和salt列 如果公司登录,我希望从公司-表获得公司信息,如果普通用户登录,我希望从用户-表获得信息 我一直在考虑让一个名为usertype的列告诉我它是什么类型,然后如果usertype是company检索公司信息实体,如果它是user检索用户信息实体(对应于帐户的i
普通用户
,另一种用于公司
我有一个名为Account
的实体(表)。这个表包含username
、password
和salt
列
如果公司登录,我希望从公司
-表获得公司信息,如果普通用户
登录,我希望从用户
-表获得信息
我一直在考虑让一个名为usertype
的列告诉我它是什么类型,然后如果usertype是company
检索公司信息实体,如果它是user
检索用户信息实体(对应于帐户的id
)
这是解决这个问题的好办法吗?或者我应该有两张不同的桌子?AccountUser和AccountCompany 如果公司表中有许多列在用户表中不存在,反之亦然,那么解决问题的最佳方法是使用将创建三个表的列:Account、User、Company。用户和公司必须是帐户实体的子类 根据上面的链接,您应该有如下代码:
namespace MyProject\Model;
/**
* @Entity
* @InheritanceType("JOINED")
* @DiscriminatorColumn(name="usertype", type="string")
* @DiscriminatorMap({"user" = "User", "company" = "Company"})
*/
class Account
{
// ...
}
/** @Entity */
class User extends Account
{
// ...
}
/** @Entity */
class Company extends Account
{
// ...
}
识别码是正确的选择。谢谢你,迈克尔!回答得好!