4

私は誰かが既存のデータベースに基づいてモデル ジェネレーターを作成するための仕様を書いています。仕様を説明するために、以下のダミー データベースを作成しました。

ここに画像の説明を入力

以下は、さまざまなテーブルを操作する方法を示すコード スニペットです。

<?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();

私はあまり技術的ではないので、上記が可能かどうかはよくわかりません。可能であれば、対応するモデルの生成に伴う作業量はどれくらいになるでしょうか。それに伴い、以下の質問をさせていただきます。

Q1: コーディング スタイルから、(合理的に) 実装できないものはありますか?

portfolio_has_customerQ2:テーブルに余分なステップを持たせるために値を追加しますか、それとも上記のようにオブジェクトamount_of_contractを介してプロパティにアクセスしますか?customer

n-mQ3: の関係を処理するためportfolio_has_customerの、上記のものよりも実装が簡単な代替手段はありますか?

4

1 に答える 1

0

Q1:構文はkohana フレームワークで使用される ORM に似ています。私にとっては実装可能に見えます

Q2:このようなピボット テーブルの使用はときどき見られますが、私には奇妙に見える唯一のことは、プロパティにアクセスする方法です (ポートフォリオとポートフォリオ_has_顧客の間の追加の関係をより頻繁に見てきました)。

Q3:いいえ、それほど複雑なことは知りません

于 2012-05-19T22:16:26.807 に答える