2012-04-30 8 views
1

私は車、バイク、トラックに関するすべてを管理するVehicleというPHPクラスを用意しています。私はテーブル、車、自転車、トラックの各DBフィールドに関連付けられている100以上のプライベート変数を持っています。例えばphpクラスのデータメンバー(変数)が100を超えるとかなり遅くなりますか?

: 車があります -Fuel消費 -Max馬力 -Maxトルク..など。 ので、私が持っているデータメンバー

private $fuel; 
private $horsepower; 
private $toque; 

私は見つけるために、データベースクエリを実行するとidによって車、私は対応する変数の中にすべての行を格納します。

車のテーブルには約50のフィールドがあり、自転車テーブルには30のフィールドとトラック30のフィールドがあります。したがって、110人以上のデータメンバーが存在します。

もっと良い方法がありますか?

+0

最も役立つ回答を必ず選択してください。人々は本当にそれを感謝し、あなたの質問は将来的に答えを得るのに役立ちます! –

答えて

3

継承と多型はあなたの友人です! 車は1クラス(50プロパティ)、バイク - もう1つ(30プロパティ)、トラック - 別の(30プロパティ)クラスでなければなりません。それらはすべてVehicle基底クラスを拡張する必要があります

+0

50個のプロパティを持つオブジェクトがある場合は、本当に間違っています。 [SRP](http://en.wikipedia.org/wiki/Single_responsibility_principle)についても聞いたことがありますか? –

1

lazy loadingを試すことができます:コンストラクタ(またはcar idを取得する関数)では、クラスにidを格納するだけで、他のすべての変数に対しては、あなたが本当にそれを必要とするときDB。

0

コード管理以外の変数の数はほとんど影響を与えません。多態性を利用したオブジェクト指向プログラミングは、ドメインオブジェクトを適切に保つための第一歩です。一度それを持っていれば、db PHP Active Recordとの間で変数を取得するためのORM(Object Relational Mapping)を調べることができます。

また、「自転車に30行あります」と言うと、フィールドを意味します。通常、「自転車」用のデータベーステーブルがある場合、各行は異なる自転車であり、各フィールドは特定の自転車の異なる属性です。

+0

はい、私はフィールドを意味します。ありがとうございました! – KEOKI

関連する問題