1

車、バイク、トラックに関するすべてを管理する Vehicle という PHP クラスがあります。私は、cars、bikes、trucks の各テーブルのすべての db フィールドに関連付けられている 100 を超えるプライベート変数を持っています。

例: 車には次のものがあります: -燃料消費量 -最大馬力 -最大トルク .. など.. データ メンバーがあります。

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

ID で車を検索するためにデータベース クエリを実行すると、対応する変数内にすべての行が格納されます。

car テーブルには約 50 のフィールドがあり、bikes テーブルには 30 のフィールドがあり、truck には 30 のフィールドがあります。したがって、110 以上のデータ メンバーがあります。

それを行うより良い方法はありますか?

4

3 に答える 3

3

継承とポリモーフィズムはあなたの友達です! 車は 1 つのクラス (50 プロパティ)、バイク - 別のクラス (30 プロパティ)、トラック - 別のクラス (30 プロパティ) である必要があります。それらはすべて Vehicle 基底クラスを拡張する必要があります

于 2012-04-30T21:24:15.717 に答える
1

遅延読み込みを試すことができます:コンストラクター(または車のIDを取得する関数)では、IDをクラスに保存するだけで、他のすべての変数については、本当に必要なときにDBからロードするだけです。

于 2012-04-30T21:24:59.290 に答える
0

コード管理を除いて、変数の数が影響を与えることはめったにありません。ポリモーフィズムを利用したオブジェクト指向プログラミングは、ドメイン オブジェクトを適切な順序で維持するための最初のステップです。それができたら、ORM (Object Relational Mapping) を調べて、db PHP Active Recordとの間で変数を取得することから始めるのがよいでしょう。

あと、「バイクは30段」って言うのは畑のことですよね?通常、「バイク」のデータベース テーブルがある場合、各行は異なるバイクであり、各フィールドは特定のバイクの異なる属性です。

于 2012-04-30T21:27:24.370 に答える