首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >原理-动态创建模型/实体

原理-动态创建模型/实体
EN

Stack Overflow用户
提问于 2013-07-31 16:59:21
回答 3查看 1.7K关注 0票数 2

如何基于抽象的实体类,动态地创建规则中的实体?表名必须不同。例如

代码语言:javascript
复制
// abstract entity model
class Transport {
   // $name, $type and other columns
}

而创作看起来像这样:

代码语言:javascript
复制
class TransportManager {

public function registerTransport($name) {
$car = ...
// here create table $name if does not exist, 
// and if it exists then just
// return Car instance of this $name table
return $car;

}

用法:

代码语言:javascript
复制
$car = $transportManager->registerTransport('car');
$airplain = $transportManager->registerTransport('airplain');
$train = $transportManager->registerTransport('train');
$helicopter = $transportManager->registerTransport('helicopter');

原因?我有几个(> 10)个具有相同结构的表,我希望将所有数据保存在不同的表中,以防止对每个表进行orverloading

EN

回答 3

Stack Overflow用户

发布于 2013-07-31 23:55:40

原理支持继承:http://docs.doctrine-project.org/en/2.0.x/reference/inheritance-mapping.html

您也可以批量生成新实体,但这取决于您的工作流程(例如,为新实体创建代码、生成迁移、执行迁移等)。

票数 0
EN

Stack Overflow用户

发布于 2013-12-21 09:02:36

使用一张桌子。有了正确的索引,它不应该比使用多个表慢,即使它很大。

票数 0
EN

Stack Overflow用户

发布于 2014-10-24 05:32:12

我会尝试这样的方法,尽管不完全是您尝试的方法:

代码语言:javascript
复制
$metadata = $cmf->getMetadataFor('YourBundle:Transport');
$metadata->setTableName('car');
//work with car
$metadata->setTableName('airplain');
//work with airplain

希望能派上用场。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17965929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档