2016-04-27 8 views
0

2つの関連オブジェクトを持つ場合は、それらを1つのオブジェクトまたは2つの別々のオブジェクトにするのが最善でしょうか?1対2のオブジェクト関連情報

たとえば、Artistオブジェクトと、1つのArtistに関連するAlbumオブジェクトの配列がある場合です。

<?php 
// two separate objects? 
$artist = $ArtistDataMapper->find(1); 
$album = $AlbumDataMapper->allByArtist($artist->id); 
// or one 
$artist = $AristDataMapper->find(1); //datamapper will also include query for albums 
+2

これは、お客様の要件によって異なります。プログラミングを「自分のデータを最良に保存するにはどうすればよいか」と考えることは、プログラミングするための単なる方法です。プログラムするもう1つの方法は、「どのようにデータを操作するのが最善でしょう」です。 – kainaw

答えて

1

これは目的によって異なります。 しかし、それを物理的な実体として考えるならば、異なる実体への「参照」を考えるかもしれません。 *アーティストのオブジェクト(ID、名前、生年月日など)を *

結局アルバムのオブジェクト(ID、ARTISTID、名前など)、あなたがしたい場合があります:私は、あなたが持っているかもしれないことを意味し、このことにより、 2人の間にディスコグラフィーの対象がある。

とにかく、あなたとあなたの要求に応じます。

1

クラスとオブジェクトは抽象です。それらを定義するとき、プログラム設計者は、コードの別々の部分を、それぞれの文脈で意味をなさない論理エンティティに分離しようと試みる。 OOP(Object Oriented design)の主な概念は、abstraction,encapsulationinheritanceです。研究対象のその他のトピックは、SOLIDDRYKISSGRASPの原則です。多分複雑なものもありますが、かなり複雑なものもあります例えば、SがSOLIDの場合は、の単一責任の略です。この原則は、1つのクラスが1つの目的しか持たず、1つのタイプのオブジェクトしか定義していないことを示しています。 は、アルバムを生成します。これは、これらの間に関係がありますが、同一ではないことを示しています。アーティストは、コンサートやインタビューのようなアルバム以外のこともできます。アーティストの団体や他の団体によっても、一般的にアーティストとは異なる属性を持っています。

+0

あなたのご意見ありがとうございます。あなたの提案の一部を読み上げます。 – Ralph

関連する問題