我正在为某人编写规范,以便根据现有数据库创建模型生成器。我创建了以下虚拟数据库来说明规范:
这是一个代码片段,展示了如何操作各种表:
<?php
// DISPLAYING VALUES
$companies = new $Companies();
$companies->get_all();
foreach ($companies as $company) {
echo "Company name: " . $company->name;
// 1-n relationship FROM company table so company_type is 1 object
echo "Type of company: " . $company->company_type->name;
// 1-n relationship TO company table so portfolios is a collection of 0
// or more objects
foreach ($company->portfolios as $portfolio) {
foreach ($portfolio->customers as $customer) {
echo $customer->amount_of_contract;
echo $customer->name;
}
}
}
// ADDING A PORTFOLIO
$companies = new $Companies;
$company = $companies->get_by_name('mycompany');
$portfolio = new $Portofolio;
$portfolio->company_id = $company->id;
$portfolio->year = '2012';
$portfolio->create();
由于我不是很技术,我不知道上述是否可能,如果是这样,生成相应模型所需的工作量是多少。因此,我想问一下以下问题:
问题1:从编码风格来看,您是否看到任何不合理(可合理)实施的内容?
Q2:是否会为portfolio_has_customer
表添加任何值,或者通过amount_of_contract
对象访问customer
属性,如上所示?
问题3:处理n-m
portfolio_has_customer
关系的替代方法是否比上述方法更难实施?
答案 0 :(得分:0)
Q1:语法类似于kohana framework使用的ORM,对我来说它看似可实现
Q2:有时可能会遇到这种使用数据透视表的问题,对我来说唯一看起来很奇怪的是你访问该属性的方式(我经常看到投资组合和portfolio_has_customer之间的额外关系) ),虽然不认为理所当然
Q3:不,我不知道任何不那么复杂的